gpt4 book ai didi

java - 小数格式设置零位

转载 作者:行者123 更新时间:2023-12-02 05:29:21 25 4
gpt4 key购买 nike

有人可以解释一下 setZeroDigit 的用途以及它到底是如何工作的。
例如

double d = 123456.7899;
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setZeroDigit('@');
symbols.setMinusSign('^');

DecimalFormat df = new DecimalFormat("-###,###.000",symbols);

System.out.println(df.format(d));

它打印 ^ABC,DEF.GI@ ,但我不明白它如何计算输出。我阅读了 javadocs 但没有太大帮助。还有一件事我的语言环境是 en_US。

最佳答案

如果您想以其他语言或区域设置打印数字,则可以使用 DecimalFormatSymbols,该数字不使用负号、百分号等常用符号集。例如,如果您用阿拉伯语打印数字,则可以使用 setZeroDigit,该数字使用点表示零。

在您的示例中,您说过“使用 @ 表示零”,而这正是所发生的情况。

但是,还有更多内容。无论您使用何种字符编码,用于 1、2、3 等的符号均假定为紧跟在 0 符号之后的符号。恰好,通常的字符编码中@后面的符号是A、B、C等。

您指定的格式需要四舍五入到小数点后三位,因此 -123456.7899 变为 -123456.79,然后使用符号 @、A、 B ... I 代替 0, 1, 2 ... 9。您还指定应使用 ^ 代替 -,使用 setMinusSign

关于java - 小数格式设置零位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25699904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com