java中的双值舍入

java中的双值舍入,java,format,double,Java,Format,Double,我想用java将一个双精度值四舍五入。在iSite中总是要用正确的方法对值进行四舍五入,有时就是对值进行四舍五入。例如: 数值=6.5817 我想四舍五入,保留两个小数。所以我需要这样的值: 数值=6.59 这里重要的是始终保留两个小数,如果值有两个以上的小数,则始终对第二个小数进行四舍五入 有人知道我如何在java中做到这一点吗?尝试以下方法: double a = 6.5817; Math.ceil(a * 100.0) / 100.0; 请尝试以下操作: double a = 6.581

我想用java将一个双精度值四舍五入。在iSite中总是要用正确的方法对值进行四舍五入,有时就是对值进行四舍五入。例如:

数值=6.5817

我想四舍五入,保留两个小数。所以我需要这样的值:

数值=6.59

这里重要的是始终保留两个小数,如果值有两个以上的小数,则始终对第二个小数进行四舍五入

有人知道我如何在java中做到这一点吗?

尝试以下方法:

double a = 6.5817;
Math.ceil(a * 100.0) / 100.0;
请尝试以下操作:

double a = 6.5817;
Math.ceil(a * 100.0) / 100.0;
由于双精度值是不精确的,例如,它不能准确地存储0.07这样的数字,因此需要使用BigDecimal来帮助对双精度值进行四舍五入,以最小的概率获得错误的值

要四舍五入到2位小数,请使用:

双值=6.5817; double roundedUp=BigDecimal.valueOfvalue.setScale2,RoundingMode.UP.doubleValue; System.out.printlroundedup;//打印6.59 请注意,当value=0.07时,此代码将打印0.07,这与Math.ceilvalue*100.0/100.0不同,Math.ceilvalue*100.0/100.0不正确地打印0.08。

由于双精度值是不精确的,例如,它不能准确地存储像0.07这样的数字,因此需要使用BigDecimal来帮助对双精度值进行四舍五入,以获得错误值的概率最小

要四舍五入到2位小数,请使用:

双值=6.5817; double roundedUp=BigDecimal.valueOfvalue.setScale2,RoundingMode.UP.doubleValue; System.out.printlroundedup;//打印6.59
请注意,当value=0.07时,此代码将打印0.07,这与例如Math.ceilvalue*100.0/100.0不正确地打印0.08不同。

这是否回答了您的问题?他需要把它和ceil函数合起来,所以它有点不同。这能回答你的问题吗?他需要ceil函数对其进行四舍五入,所以这有点不同。因为双精度是不精确的,所以会得到不正确的结果,比如a=0.07->0.08,也就是说,它对一个不需要四舍五入的数字进行四舍五入。因为双精度是不精确的,所以会得到不正确的结果,比如a=0.07->0.08,也就是说,它对一个不需要四舍五入的数字进行四舍五入。