用.00获得双倍

Seb*_*rre 1 java double

String有价值; 而且我需要总是将2位小数作为一种Double类型; 所以,如果我得到500,我需要将其转换500.00为永远是双重值.

我的问题是,当我有这样的事xxx.00或者xxx.x0,该parseDouble方法去除第二0.

我的代码是这样的

String number = "500.00";
Double numberToSave = (Double.ParseDouble(number));
Run Code Online (Sandbox Code Playgroud)

numberToSave返回500.0

我怎么解决这个问题?我需要显示第二个小数,即使它是0.

谢谢.

Jon*_*eet 5

Double 没有任何保持微不足道的数字的概念.

问题不在于您正在使用的Double(或double)值 - 而是您将其转换字符串的方式.您应该使用a DecimalFormat指定适当的小数位数.

另请注意,您当前正在使用Double.parseDouble哪个返回a double,但是您将其分配给Double变量,该变量将包含该值 - 可能不必要.

示例代码:

import java.text.DecimalFormat;

public class Test {
    public static void main(String[] args) {
        String text = "500.00";
        double number = Double.parseDouble(text);

        DecimalFormat format = new DecimalFormat("0.00");
        String formatted = format.format(number);
        System.out.println(formatted);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,即使有更多可用数字,上面的代码也会给出两位小数.

此外,如果确切的十进制数字对您很重要,您可能需要考虑使用BigDecimal而不是double.如果您的值实际上代表货币,这一点尤为重要.您应该了解浮点二进制点类型(例如double)和浮点小数点类型(例如BigDecimal)之间的区别,并在它们之间进行适当选择.