c语言保留小数点后两位保留小数点后两位
导读:就爱阅读网友为您分享以下“保留小数点后两位”资讯,希望对您有所帮助,感谢您对92to的支持! java保留两位小数问题:
方式一:
四舍五入
double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 保留两位小数
---------------------------------------------------------------
方式二:
例:DecimalFormat(“#.00”).format(3.1415926)
#.00 表示两位小数#.0000四位小数以此类推...
方式三:
double d = 3.1415926;
String result = String .format(“%.2f”);
%.2f %. 表示小数点前任意位数 2 表示两位小数格式后的结果为f 表示浮点型
方式四:
NumberFormat
NumberInstance() ;
void setMaximumFractionDigits(int digits)
digits 显示的数字位数
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的
* ;
import java.math.* ;bigdecimal除法保留小数
class TT
{
public static void main(String args[])
{ double x=23.5455;
NumberFormat
NumberInstance() ;
ddf1.setMaximumFractionDigits(2);
String s= ddf1.format(x) ;
System.out.print(s);
}
}
---------------------------------------------------------------------------
------------------------------
有一篇:
(1)、浮点数精确计算
胜利油田三流合一项目中一直存在一个问题,就是每次报表统计的物资金额和实际的金额要差那么几分钱,和实际金额不一致,让客户觉得总是不那么舒服,原因是因为我们使用java的浮点类型double来定义物资金额,并且在报表统计中我们经常要进行一些运算,但Java中浮点数(double、float)的计算是非精确计算,请看下面一个例子:
System.out.println(0.05 + 0.01);
System.out.println(1.0 - 0.42);
System.out.println(4.015 * 100);
System.out.println(123.3 / 100);
你的期望输出是什么?可实际的输出确实这样的:
0.060000000000000005
0.5800000000000001
401.49999999999994
1.2329999999999999
这个问题就非常严重了,如果你有123.3元要购买商品,而计算机却认为你只有123.29999999999999元,钱不够,计算机拒绝交易。
(2)、四舍五入
是否可以四舍五入呢?当然可以,习惯上我们本能就会这样考虑,但四舍五入意味着误差,商业运算中可能意味着错误,同时Java中也没有提供保留指定位数的四舍五入方法,只提供了一个und(
double d)和und(float f)的方法,分别返回长整型和整型值。
round方法不能设置保留几位小数,我们只能象这样(保留两位):
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论