我正在使用
double i2 = value * 2.23694;
i2 = (double)(Math.round(i2 * 100)) / 100;
用于舍入双打。但它只舍入到小数点后两位。
我希望它是小数点后6位。
有没有办法使用Math.round
并有6位小数?
答案 0 :(得分:12)
你正在向Integer
施放东西,这将毁掉任何四舍五入。要使用double
s,请使用小数点(即100.0
代替100
)。如果你想要6位小数,请使用1000000.0
,如下所示:
double i2 = value * 2.23694;
i2 = Math.round(i2*1000000.0)/1000000.0;
但一般来说,我认为DecimalFormat是一个更优雅的解决方案(猜测你想要它只是为了呈现它):
DecimalFormat f = new DecimalFormat("##.000000");
String formattedValue = f.format(i2);
答案 1 :(得分:2)
如果您正在使用显示值,请使用以下方法舍入为6位
double a = 12.345694895;
String str = String.format("%.6f", a );
答案 2 :(得分:1)
double value = 12.3464367843; double rounded =(double)Math.round(value * 1000000)/ 1000000;
输出:12.346437