使用Java android中的Math.round方法舍入到小数点后6位

时间:2014-04-03 09:35:11

标签: java android decimal rounding

我正在使用

double i2 = value * 2.23694;
i2 = (double)(Math.round(i2 * 100)) / 100;

用于舍入双打。但它只舍入到小数点后两位。

我希望它是小数点后6位。

有没有办法使用Math.round并有6位小数?

3 个答案:

答案 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