繁体   English   中英

为什么我的 DecimalFormat 不适用于 Java 中的 2 位小数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM