如何将任何 double 数据类型转换为 0.00(小数点后 2 位)格式并接受另一种 double 数据类型(Android/Java)?

How to make any double datatype into 0.00 (2 digits after decimal point) format taking in another double datatype (Android/Java)?

我是 android 开发的初学者。如何将双数据类型即 56.32534 转换为 56.33?但我想把它放在一个双变量中。我知道一种方法,但它接受字符串。

Double value = 56.32534;
DecimalFormat df = new DecimalFormat("0.##");
String newvalue = df.format(value);

这里,newvalue是一个字符串。但我想采用双数据类型。

我需要使用它的数值,而不仅仅是为了显示目的。

您可以使用 Math.round():

double value = 56.32534;
double rounded = Math.round(100 * value) / 100.0;

先乘后除以 100 是必要的,因为 Math.round() 舍入到最接近的 long 值。

如果你想将其推广到可变位数,你可以使用这样的东西:

public double round(double value, int digits) {
    double scale = Math.pow(10, digits);
    return Math.round(value * scale) / scale;
}

如果 digits 不是正数,这甚至会起作用;如果 digits 为 0,它将舍入到最接近的整数;如果 digits 为 -1,则舍入到最接近的 10;如果 digits 为 -2,则舍入到最接近的 100,等等

我们需要更精确地确定您要执行的操作。你想以这种方式显示它还是只以这种方式使用它的数值?

如果是显示器问题,你的解决方案就可以了。之后您总是可以从字符串中取回浮点数。

另一方面,如果您想将其用作数值,您可以做的是

double rounded = (double) Math.round(myfloat * 100) /100; 

我认为它有效。虽然我在手机上无法测试