我在Java中格式化一些货币。这件作品输出9,99€
final NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("nl", "BE"));
nf.setCurrency(EUR);
nf.format(new BigDecimal("9.99"));
但我们的一家付款服务提供商退回预先格式化的金额,输出9,99欧元
nl-BE
哪个正确?
更多的编程相关,如果事实证明支付提供商而不是Java,是正确的,我如何修复Java方式而不是每个语言环境的黑客攻击(在真实代码中荷兰语在比利时语言环境不是硬编码的)
答案 0 :(得分:4)
如果Wikipedia is to be believed,则两者都不正确:
在比利时荷兰语中,欧元符号可以在金额之前或之后发行 后者更常见。
答案 1 :(得分:1)
简短的回答:没有人关心。你可以使用任何人。
更长的答案:如果金额出现在一个句子中,9,99€更为常见。如果它在发票的底部,则使用两者。不用等待,你甚至可以用欧元而不是欧元。
顺便说一句,大多数人甚至期望9.99欧元而不是9,99欧元只是因为locale data was invented 25 years late。请注意,这是fr-BE
家伙的意见; - )
这是我认为语言环境信息过多地区分邻近文化的东西。想一想键盘:fr-FR
有一个布局,fr-BE
有一个布局。字母,数字和大多数标点符号位于相同的位置,但是< ,> 或 @ 等几个字符位于不同的位置在键盘上。 WTF!