首页 > 编程知识 正文

java控制小数位数,java取十位数

时间:2023-05-04 12:42:53 阅读:51140 作者:2171

作者: RaphetS

第一种方法

使用DecimalFormat类

例如,如果需要保留两位小数,可以这样写

decimal format df=new decimal format (' 0.00 ); 测试如下。

双精度d=0.200; decimal format df=new decimal format (' 0.00 ); 系统. out.println (df.format (d ) ); 输出结果如下。

0.20

双精度d=0.000时; 输出结果为0.00;

双精度d=0时; 输出结果为0.00;

双精度d=41.2345时; 输出结果为41.23;

测试结果表明,无论双精度d的值是多少,最终结果都是正常的两位小数。

同样,如果保留小数decimal format df=新decimal format (' 0.0 ) ); 其他就此类推

若是这种写法DecimalFormat df = new DecimalFormat("0.00"),不管传入的任何值,均保留两位小数

另一种写法是:

双精度d=41.123; decimal format df=new decimal format (' #.# # '; 系统. out.println (df.format (d ) ); 输出结果如下。

41.12

双精度d=2.00时,输出结果为2;

双精度d=41.001时,输出结果为41;

双精度d=41.010时,输出结果为41.01;

双精度d=0时,输出结果为0;

双精度d=0.200时,输出结果为0.2;

总结:若是这种写法DecimalFormat df = new DecimalFormat("#.##"),则保留小数点后面不为0的两位小数,这种写法不能保证保留2为小数,但能保证最后一位数不为0;

第二种方法

测试:

双精度d=0.6544; strings=string.format('%.2f ',d ); 系统. out.println (s; 输出结果如下。

0.65

双精度d=0.6566时,输出结果为0.66;

双精度d=0时,输出结果为0.00;

其中String s=String.format("%.2f",d)表示小数点后任意两位小数,其中2为表示两位小数,若需要三位小数,把2改为3即可,其他同理。

总结:这种方法不管传入的值是多少,均保留两位小数,并且符合四舍五入的规则。

第三种方法:

使用BigDecimal类

测试:

输入结果:1.0

双精度d=0时,输出结果为0.0;

双精度d=1.999时,输出结果为2.0;

双精度1.89时,输出结果为1.89;

总结:使用这种写法若小数点后均为零,则保留一位小数,并且有四舍五入的规则。

源代码

以下是Java测试类

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。