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



我正在使用

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

用于四舍五入的双打。但它四舍五入到小数点后 2 位。

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

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

你正在将东西投射到Integer s,这会破坏任何四舍五入。要使用 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);

如果您使用值进行显示,只需使用以下方法四舍五入到 6 位数字

double a = 12.345694895;
String str = String.format("%.6f", a );

双精度值 = 12.3464367843; 双舍五入 = (双精度) 数学四舍五入(值 * 1000000)/1000000;

输出:12.346437

最新更新