我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.
谢谢.
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)之间的区别,并在它们之间进行适当选择.
| 归档时间: |
|
| 查看次数: |
17660 次 |
| 最近记录: |