![](/img/trans.png)
[英]Why does a German localised DecimalFormat successfully parse "3.2" as a decimal in Java?
[英]why does my DecimalFormat not work for 2 decimal places in Java?
我在java
中有一个DecimalFormat
,当我使用它时,它不能按预期工作。 在输入中我得到150000
,我希望得到15.00
作为结果。 代码如下所示:
import java.text.DecimalFormat;
public class MyClass {
public static void main(String args[]) {
long x=150000;
DecimalFormat df = new DecimalFormat("#.##");
System.out.println("x " + x/10000);
long y = x/10000;
System.out.println(df.format(y));
}
}
而且,控制台仍然显示15
而不是15.00
。 我在这里想念什么? 顺便说一句,有没有更好的方法来制作这样的格式化程序(在尝试将15000
转换为15.00
时)? 还是在这种情况下将其除以10000
是最好的选择? 感谢您的任何反馈!
你的模式应该是:
DecimalFormat df = new DecimalFormat("#.00");
因为正如 DecimalFormat 的 javadoc 所说:
象征 | 地点 | 本地化? | 意义 |
---|---|---|---|
0 | 数字 | 是的 | 数字 |
# | 数字 | 是的 | 数字,零表示不存在 |
顺便说一句,有没有更好的方法来制作这样的格式化程序(在尝试将 15000 转换为 15.00 时)? 还是在这种情况下将其除以 10000 是最好的选择?
格式化只是以某种文本形式表示一个值。 这不是改变一个值,15000 和 15 是不同的值。 所以像这样划分是获得不同价值的正确方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.