我想格式化正数和负数都没有任何前缀(或相同前缀)的数字。具有等价负值和负值模式的Java NumberFormat
NumberFormat的规范指出,您可以指定正数的子图案和负号的子图案,用分号分隔。
每个子模式都有一个前缀,数字部分和后缀。负面的 子模式是可选的;如果不存在,则使用 作为负子模式,而前面带有本地化减号(在大多数语言环境中为' - ')的正子模式 。也就是说,仅“0.00”等于 “0.00; -0.00”。
只要正面和负面的子模式具有不同的前缀或后缀,这就行得通了。如果它们相同,则默认为带有减号的默认行为。
我想是格式化:
- +1为:01
- -1为:01
我知道,我可以用Math.abs(),这是在JSP/EL环境中不是那么容易,而且这是一个纯粹的格式问题,所以应该在JSP中完成,但这根本不重要。 我无法在有关该行为的文档中找到任何提示。当我阅读上述内容时,我认为只要我指定任何负面的子模式,它就会被使用。事实并非如此。
有没有人知道这件事?我可能会向Oracle提交一个错误,但如果我错过了一些东西,首先要检查。
嗨,彼得,谢谢。好点,我不知道这种方法。然而,正如我所说的,我想在JSP中做到这一点(没有scriptlet),在我看来,具有分号的子模式应该是诀窍。我仍然认为,这是一个错误。该错误显然在解析和应用模式到内部结构,而不是在输出逻辑。 – marc82ch 2013-04-29 06:23:57