Java 十进制格式设置为零位
有人能解释一下setZeroDigit的用途以及它是如何工作的。Java 十进制格式设置为零位,java,Java,有人能解释一下setZeroDigit的用途以及它是如何工作的。 例如 它打印^ABC,DEF.GI@,但我不明白它是如何计算输出的。我读过javadocs,但没什么帮助。还有一件事我的语言环境是en_US。如果你想用其他语言或语言环境打印数字,你可以使用十进制符号,而不是使用通常的符号集,比如负号、百分号等等。例如,如果您正在用阿拉伯语打印数字,您可以使用setZeroDigit,它使用点表示零 在您的示例中,您说过“使用@表示零”,这正是发生的情况 然而,还有更多。在您使用的任何字符编码中,
例如
它打印^ABC,DEF.GI@,但我不明白它是如何计算输出的。我读过javadocs,但没什么帮助。还有一件事我的语言环境是en_US。如果你想用其他语言或语言环境打印数字,你可以使用
十进制符号,而不是使用通常的符号集,比如负号、百分号等等。例如,如果您正在用阿拉伯语打印数字,您可以使用setZeroDigit
,它使用点表示零
在您的示例中,您说过“使用@
表示零”,这正是发生的情况
然而,还有更多。在您使用的任何字符编码中,用于1、2、3等的符号都假定为紧跟在0符号之后的符号。在通常的字符编码中,@后面的符号恰好是A、B、C等
您指定的格式需要舍入到小数点后三位,因此-123456.7899
变为-123456.79
,然后使用符号@,A,B。。。我
取代了0,1,2。。。9
。您还指定它应该使用^
代替-
,使用setminusign
它为各种正数和负数提供了什么输出?我想知道它是如何生成^ABC,DEF的。GI@You要求仅输入3位十进制数字,因此-123456.7899四舍五入为-123456.790别名^ABC,DEF.GI@
double d = 123456.7899;
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setZeroDigit('@');
symbols.setMinusSign('^');
DecimalFormat df = new DecimalFormat("-###,###.000",symbols);
System.out.println(df.format(d));