我使用小数格式显示不同区域设置的价格。
我的基本格式为:
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
String cur_syl = dfs.getCurrencySymbol().toString();
DecimalFormat df = new DecimalFormat(cur_syl+"0.00");
total.setText(df.format(line_total));
这适用于我并显示本地的正确货币符号。但是,有时小数部分会超过2个位置..(因为测量转换的单位(留下一个很小的部分)。如果数量真的是0.005,显示屏显示0.00。我只想显示额外的小数位数如果那里有值。我真的不想显示0.0050000只是为了说明少于一个数量的金额。
我已经完成了大部分的帮助和网络...这对我来说有点困惑,我即将为此做一个花哨的代码,但我确信有一个很好的简单方法我需要什么。
我想显示这样的数字:
.05 = $0.05
.005 = $0.005
.0005 = $0.0005
如果程序显示:$ 0.0005 = $ 0.00则会出现错误。
任何帮助都会非常感激..
答案 0 :(得分:2)
以下是使用 DecimalFormat
的“#”掩码的示例代码。 “#”掩码仅显示该位置中存在的数字。您也可以使用类似#,##0.00
的格式在小数的左侧使用它。这样,只有当数字达到数千时,才会显示逗号,但是0将始终显示在1位置。
double line_total0 = 0.5;
double line_total1 = 0.05;
double line_total2 = 0.005;
double line_total3 = 0.0000005;
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
String cur_syl = dfs.getCurrencySymbol().toString();
DecimalFormat df = new DecimalFormat(cur_syl + "0.00############");
System.out.println(df.format(line_total0));
System.out.println(df.format(line_total1));
System.out.println(df.format(line_total2));
System.out.println(df.format(line_total3));
输出:
$0.50
$0.05
$0.005
$0.0000005