Java 十进制模式
Java 十进制模式,java,decimalformat,Java,Decimalformat,“############################,##0.00”,这个模式的目的到底是什么?我相信它有两个目的 将数字分组,即用千位分隔符逗号 如果缺少十进制数,则在十进制数后附加两个零,将其转换为23.00 但是为什么小数点前有“0”而不是“#”?这个零的目的到底是什么? 谢谢你的帮助 public static String formatAmountUpToTwoDecimalNumber(String amount) { if(amount=
“############################,##0.00”
,这个模式的目的到底是什么?我相信它有两个目的
“0”
而不是“#”
?这个零的目的到底是什么?
谢谢你的帮助
public static String formatAmountUpToTwoDecimalNumber(String amount)
{
if(amount==null || "".equals(amount))
{
return "";
}
Double doubleAmount = Double.valueOf(amount);
double myAmount = doubleAmount.doubleValue();
NumberFormat f = new DecimalFormat("###,###,###,###,##0.00");
String s = f.format(myAmount);
return s;
}
发件人:
因此,当没有数字时,
#
不会显示。前导的0
表示小数点分隔符前至少有一个数字。#
仅当数字不是前导的零时才会放入数字0
将输入一个数字,即使它是尾随的零。如果您希望打印固定数量的数字,也可以在前面使用零。在dp之前使用零,0.23之类的小数字将显示为0.23。如果没有它,您将无法获得前导零,因此它仅显示为.23。如果你有像excel这样的电子表格,你也可以在那里查看。谢谢。我看了文档,但不太明白。我很困惑,零不应该是字面意义上的吗?正如文档中所解释的,零在格式字符串中使用时不应该是字面意义上的。“将至少有1个数字”,你想说如果小数点前没有数字,那么如果我通过。7,它将在添加前导零后返回0.70?+1,但请不要链接到文档。对于过时的JRE。URL已调整。谢谢安德鲁。我没有注意到。我只是用###########测试了一下。我得到了0.23,这很烦人,因为我不想让前导零代表我所做的doing@MikeB-我刚刚使用Excel 2003进行了检查,如果单元格格式为##########@DaveRiz,则前导零肯定会被删除。但这是javaquestion@MikeB-是的,我知道这一点,但同样的原则也适用于excel。我是一名java程序员,我使用excel作为工具来说明这一点。我相信java应该做excel正在做的事情,但在我看来并非如此。这个测试在java中失败了,:断言(新的十进制格式(“####.######”)。格式(0.23d)是(“.23”)代码>
Symbol Location Localized? Meaning
0 Number Yes Digit
# Number Yes Digit, zero shows as absent