![]() |
|
所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> Java数值小数点数等精度的设定 |
![]() |
今天上课有学生问,他现在做一个计费系统,按分钟计算,每小时假如1.5元,累计后从总额中减去,其中使用的是浮点数,问数值的精度如何设定,比如小数点保留2位,给出一个解决方法:
Java的浮点数运算的精度不是太好,我们可以考虑使用java.math.BigDecimal类,这个类就是用来表示大的十进制数的,并且其精度非常的高,更重要的是你可以设定获取的数的小数点数,这样就可以满足他的要求的。示例代码如下:
package com.historycreator.number;
public class NumberFormatTest {
public static void main(String[] args)
{
//保留的小数点位数
int scale = 2;
java.math.BigDecimal bd1 = new java.math.BigDecimal(12.54);
java.math.BigDecimal bd2 = new java.math.BigDecimal(5);
//做除法
java.math.BigDecimal result = bd1.divide(bd2);
//注意,设定小数点位数后,会产生一个新的BigDecimal对象,这个对象是我们想要的
result = result.setScale(scale,result.ROUND_HALF_UP);
//输出看看,结果为2.51
System.out.println(result);
}
}
输出结果为:2.51
| 操作选项: 评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖 |
|
||||||