首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无论小数位数是多少,如何用固定的有效位数来格式化双位?

无论小数位数是多少,如何用固定的有效位数来格式化双位?
EN

Stack Overflow用户
提问于 2014-10-07 04:14:38
回答 3查看 957关注 0票数 0

也许我的措辞不清楚,所以我试着举例说明:

  • 如果我有像123.4567这样的双人间,我想把它格式化为123。
  • 如果我有一个像12.34567这样的双人间,我想把它格式化为12.3
  • 如果我有一个像1.234567这样的双人间,我想把它格式化为1.23

当然,我可以用一个开关/case语句来完成这个任务,但是我想知道是否有任何内置的或实用的格式化,什么可以做到这一点。

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-07 04:30:51

使用G3格式说明符:

代码语言:javascript
运行
AI代码解释
复制
  String result1 = 123.4567.ToString("G3");
  String result2 = 1.234567.ToString("G3");

或者通过String.Format

代码语言:javascript
运行
AI代码解释
复制
  String result = String.Format("{0:G3}", 12.3456789);
票数 4
EN

Stack Overflow用户

发布于 2014-10-07 04:32:05

这是一个java代码也可以用于C#,我想..

代码语言:javascript
运行
AI代码解释
复制
   public static double round(double value) {
       int places = 0;
       BigDecimal bd = new BigDecimal(value);
       if(value>=100){
           places=0;
       }else if(value<=100 && value>=10){
           places = 1;
       }else{
           places = 2;
       }
        bd = bd.setScale(places,RoundingMode.UP);
      return bd.doubleValue();
    }
票数 0
EN

Stack Overflow用户

发布于 2014-10-07 04:41:54

我不知道是否有更简单的东西,但这应该能满足你的需要:

代码语言:javascript
运行
AI代码解释
复制
public static string TakeNumDigits(decimal number, int digits, NumberFormatInfo formatProvider = null)
{
    formatProvider = formatProvider ?? NumberFormatInfo.CurrentInfo;
    string num = number.ToString(formatProvider);
    if (digits >= num.Length)
        return num;

    string decSep = formatProvider.NumberDecimalSeparator;
    int decSepIndex = num.IndexOf(decSep);

    if (decSepIndex == -1 || decSepIndex + digits > num.Length)
        return num.Substring(0, digits);
    else
        return num.Substring(0, digits + decSep.Length);
}

你的样品:

代码语言:javascript
运行
AI代码解释
复制
decimal num1 = 123.4567m;
string result = TakeNumDigits(num1, 3); // 123
decimal num2 = 12.34567m;
result = TakeNumDigits(num2, 3);        // 12.3
decimal num3 = 1.234567m;
result = TakeNumDigits(num3, 3);        // 1.23
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26235759

复制
相关文章
bigdecimal保留小数位数_如何保留两位小数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
6.3K0
bigdecimal保留小数位数_如何保留两位小数
Python保留小数位数_python怎么保留三位小数
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169803.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.5K0
C plus plus 控制格式
使用这些格式需要声明包含<iomainip> long flags( ) const 返回当前的格式标志。 long flays(long newflag) 设置格式标志为newflag,返回旧的格式标志。 long setf(long bits) 设置指定的格式标志位,返回旧的格式标志。 long setf(long bits,long field)将field指定的格式标志位置为bits,返回旧的格式标志 long unsetf(long bits) 清除bits指定的格式标志位,返回旧的格式标志。 l
Gxjun
2018/03/22
1.1K0
python保留小数位数_python小数点保留三位
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169807.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
1.6K0
小朋友学C语言(4):单精度浮点数与双精度浮点数
上节课 简单介绍了浮点数。计算机程序中的浮点数分为单精度浮点数和双精度浮点数。 单精度和双精度精确的范围不一样。 计算机里的最基本的存储单位用位(bit)来表示。bit只能用来存储0或1。 稍大一点的单位是字节(Byte,简写为B)。 再大一级的是千字节(kilo Bytes),用k来表示。 再大一级的单位是兆字节(Mega Bytes),用M来表示。一张照片的大小通常为1~3M。 再大一级的单位为G。一部高清电影的大小通常为1~2G。 再大一级的单位为T。 换算关系为: 1B = 8bit 1k =
海天一树
2018/04/17
2.9K0
小朋友学C语言(4):单精度浮点数与双精度浮点数
Linux系统下C++标准库函数
函数名作用isalnum()测试字符是否为英文字母或数字isalpha()测试字符是否为英文字母isascii()测试字符是否为ASCII码字符isblank()测试字符是否为空白字符 包括空格 \r\n\t 符号iscntrl()测试字符是否为ASCII码的控制字符isdigit()测试是否为阿拉伯数字 16进制会出现错误isgraph()测试字符是否为可打印字符 打印到纸上islower()测试字符是否为小写英文字母isupper()测试字符是否为大写英文字母isprint()测试字符是否为可打印字符 打印到屏幕上isspace()测试字符是否为空格字符ispunct()测试字符是否为标点符号或特殊符号isxdigit()测试字符是否为16进制数字
用户7886150
2021/02/15
1.9K0
c语言控制输出格式-小数点位数
printf(%m.nf) 表示打印至少m个字符宽度(包括整数、小数点和小数部分的位数),n位小数
全栈程序员站长
2022/09/15
3.8K0
c语言控制输出格式-小数点位数
浮点数
因为浮点数加法首先需要将指数较小的数的指数调整到指数较大的数,然后再将尾数相加。因此这里当把 的指数调整到 的指数大小时,由于尾数精度只有 位,因此尾数精度不够导致 最后丢失。
hotarugali
2022/03/17
5.8K0
浮点数
江哥带你玩转C语言 | 05-printf 和 scanf 函数
printf函数 printf函数称之为格式输出函数,方法名称的最后一个字母f表示format。其功能是按照用户指定的格式,把指定的数据输出到屏幕上 printf函数的调用格式为: printf("格式控制字符串",输出项列表 ); 例如:printf("a = %d, b = %d",a, b); 非格式字符串原样输出, 格式控制字符串会被输出项列表中的数据替换 注意: 格式控制字符串和输出项在数量和类型上***必须一一对应*** ---- 格式控制字符串 形式: %[标志][输出宽度][.精
极客江南
2021/07/11
1.3K0
[小技巧]你真的了解C#中的Math.Round么?
今天在某.NET Core 群中看到有人在问Math.Round的问题。其实这个问题之前有很多人遇到了,在此总结一下。
李明成
2020/02/12
6770
JavaScript之0.1+0.2=0.30000000000000004的计算过程
在看了 JavaScript 浮点数陷阱及解法(https://github.com/camsong/blog/issues/9) 和 探寻 JavaScript 精度问题(https://github.com/MuYunyun/blog/blob/master/BasicSkill/%E5%9F%BA%E7%A1%80%E7%AF%87/%E6%8E%A2%E5%AF%BBJavaScript%E7%B2%BE%E5%BA%A6%E9%97%AE%E9%A2%98.md) 后,发现没有具体详细的推导0.1+0.2=0.30000000000000004的过程,所以我写了此文补充下
进击的小进进
2020/02/24
1.2K0
JavaScript之0.1+0.2=0.30000000000000004的计算过程
NUMBER长度的误解
NUMBER类型是Oracle的一种变长数值类型,他的取值范围是10^(-130)-10^126(不包括),精度是38位,存储空间是1-22字节。
bisal
2020/04/17
3.2K0
Mysql中的列类型
支持的范围是1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
Tony He
2022/11/17
6.7K0
Python保留指定位数的小数
其实这个方法不推荐大家使用,查询资料发现里面的坑其实很多,python2和python3里面的坑还不太一样,在此简单描述一下python3对应的坑的情况。
全栈程序员站长
2022/09/21
1.9K0
Java float类型怎么把小数位数限制为2位
转载自 https://blog.csdn.net/u012988145/article/details/39454797
allsmallpig
2021/02/25
1.7K0
SQL中的DECIMAL()函数
Decimal为SQL Server 数据类型,属于浮点数类型。一个decimal类型的数据占用了2~17个字节。
全栈程序员站长
2022/09/09
2.4K0
js保留两位小数的方法_js保留4位小数
计算过程中,发现浮点数如果没有小数位,就会自动舍掉小数点.现在想要做的是无论是整数还是多位小数,强制保留两位小数
全栈程序员站长
2022/09/23
8K0
Python3 四舍五入问题详解
“就本质来说,浮点算术是不精确的,而且程序员们很容易滥用它,从而使计算的结果几乎全部由噪声组成”
用户9077582
2021/10/11
3.5K0
实型变量_C语言实型常数的合法形式
实型变量分为两类:单精度型和双精度型, 其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。 实型变量说明的格式和书写规则与整型相同。 例如: float x,y; (x,y为单精度实型量)     double a,b,c; (a,b,c为双精度实型量) 实型常数不分单、双精度,都按双精度double型处理。 void main() { float a; double b; a=33333.33333; b=33333.33333333333333; printf(“%f\n%f\n”,a,b); } 此程序说明float、double的不同 a ■■■■ b ■■■■■■■■ a<—33333.33333 b<—33333.33333333333;; 显示程序结果 此程序说明float、double的不同 float a; double b; a=33333.33333; b=33333.33333333333333; 从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入。
全栈程序员站长
2022/11/01
6140
Matlab中fprintf函数使用[通俗易懂]
formatSpec 输入中的 %4.2f 指定输出中每行的第一个值为浮点数,字段宽度为四位数,包括小数点后的两位数。formatSpec 输入中的 %8.3f 指定输出中每行的第二个值为浮点数,字段宽度为八位数,包括小数点后的三位数。\n 为新起一行的控制字符。
全栈程序员站长
2022/11/02
4.8K0

相似问题

查找小数点后的有效位数和小数位数。

40

BigDecimal允许使用的有效位数是多少

11

如何用小数点两位来格式化数字?

12

如何格式化6位或9位数字,如#、##、###

20

Java获得双小数位数的前2位

46
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档