保留一位小数有几种方式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保留一位小数有几种方式?相关的知识,希望对你有一定的参考价值。

我的记忆里只知道四舍五入和进一法。现在公司的业绩核算汇率 发现了一种舍尾的,很震惊,求知欲让我来求助了,各位大佬请指教。

数值修约有两种方式:
1.四舍五入法。
2.四舍六入五成双。
第1种是常见的方法,就不赘述了。
你们使用的是第2种方法:
(1)百分位的数字小于5,直接舍去。
例6.44≈6.4
(2)百分位大于5,直接进一位
例:6.46≈6.5
(3)百分位等于5有两种情况:
①5右面全是0,十分位要保证是偶数,如果本是偶数,直接保留,如果本是奇数,则进一位变成偶数。
例:6.45≈6.4(你遇到的情况)
6.55≈6.6
②5后面不全为零,直接进一位
例:6.4502≈6.5
6.4522≈6.5
第2种方法可以减少修约产生的误差,是科学技术和生产活动试验常使用的方法。
参考技术A 保留一位小数有三种方式。
进一法,比如 6.45,保留一位小数是6.5;
去尾法,比如 6.45,保留一位小数是6.4;
四舍五入法:比如 6.45 ,保留一位小数是6.5。
希望能帮到你!
参考技术B 有好几种的。
有进位法,比如 6.41、6.49 ,按此操作都是是 6.5 ,函数 roundup
去位法,比如 6.41、6.49 ,按此操作都是是 6.4 ,函数 rounddown
有逢单进位逢双退位的。
还有逢5 保留的。本回答被提问者采纳
参考技术C 保留小数点位数的方法不只是只有“四舍五入和进一法”,还有其他的方法。保留小数点位数的方法使用规则,在国标《GB/T 8170-2008 数值修约规则与极限数值的表示和判定》中有详细规定。

C#保留2位小数几种场景总结

场景1:

  C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25.可不可以刚好保留到最后一位不是0的位置?
默认保留2位,如果真的有3位小数,就保留3位,有4位就保留4位。

先说一下ToString("0.00##")中0和#的区别:
  0 代表占位的。如果ToString("0.00") 这样就是保留两位小数,无论小数有多少位或者无小数,结果都是两位小数。例如 1.1234 那么结果是1.12。如果是1.2 那么结果会补零,为1.20。
  # 代表后面的不是零就被保留,如果是0就去掉。例如ToString("0.##") 那么1.20的话结果是1.2。


对于场景1的问题,默认有两位就是00,其它的如果大于两位就不是零就保留的话,可以下面这样写:

double dd = 1.2530;
string ret = dd.ToString("0.00####"); // 1.253

 

场景2:

  根据国际惯例,有时候我们需要对超出的位数“四舍五入”。用C# 实现保留两位小数的方法有很多,常用的总结如下:

1、Math.Round(0.333333,2);//按照四舍五入的国际标准
2、double dbdata=0.335333; string str1=String.Format("{0:F}",dbdata);//默认为保留两位
3、float i=0.333333; int j=(int)(i * 100); i = j/100;
4、decimal.Round(decimal.Parse("0.3333333"),2)
5、private System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();

  float test=0.333333f;

  nfi.NumberDecimalDigits=2;

  string result=test.ToString("N", nfi);


6、string result= String.Format("{0:N2}",Convert.ToDecimal("0.333333").ToString());
7、Convert.ToDecimal("0.33333333").ToString("0.00");

 

以上是关于保留一位小数有几种方式?的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何保留一位小数

C#保留2位小数几种场景总结

js如何判断小数点后有几位

c++保留小数点后几位

如何在Python中保留小数?

怎么保留一位小数?