gpt4 book ai didi

具有等效负数和正数模式的 Java NumberFormat

转载 作者:行者123 更新时间:2023-12-02 07:05:37 32 4
gpt4 key购买 nike

我想格式化一个没有任何前缀(或相同前缀)的正数和负数的数字。

NumberFormat 规范规定您可以为正数指定一个子模式,为负数指定一个子模式,并用分号分隔。

Each subpattern has a prefix, numeric part, and suffix. The negative subpattern is optional; if absent, then the positive subpattern prefixed with the localized minus sign ('-' in most locales) is used as the negative subpattern. That is, "0.00" alone is equivalent to "0.00;-0.00".

只要正负子模式具有不同的前缀或后缀,这种方法就有效。如果它们相同,则默认为带有减号的默认行为。

我想要的是格式化:

  • +1 为:01
  • -1 为:01

我知道我可以使用Math.abs(),这在JSP/EL环境中并不那么容易,而且这是一个纯粹的格式问题,所以应该在JSP中完成,但这根本不是重点。我在文档中找不到有关该行为的任何提示。当我阅读上面的内容时,我认为只要我指定任何负子模式,它就会被使用。但事实并非如此。

有人知道这件事吗?我可能会向 Oracle 提交错误,但想先检查一下是否遗漏了某些内容。

最佳答案

不确定您的格式到底应该是什么,但这似乎适用于您的示例:

DecimalFormat f = new DecimalFormat(":00");
f.setNegativePrefix(":");
System.out.println(f.format(1)); // :01
System.out.println(f.format(-1)); // :01

关于具有等效负数和正数模式的 Java NumberFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146222/

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