我正在使用LSEuroCurrencyFormat
这样:
#LSEuroCurrencyFormat("1999","Local")#
输出如下内容:
1.999,00 €
但我需要的是,格式化后不应显示小数部分或不应该是价格的一部分。它应该是这样的:
1.999 €
答案 0 :(得分:2)
该函数使用标准的java规则来格式化Currency,通常意味着两个小数位。正如@Adam所提到的,没有任何内置可以为您提供准确的结果。但是,您可以使用java's number formatting classes和自定义Locale来获得更强大的解决方案。
例如,您可以使用NumberFormat类为相应的区域设置获取货币格式化程序。然后使用其方法来抑制小数位。 (显然,这可能会导致舍入,具体取决于输入值。)我不知道JVM的默认Locale,但是能够使用西班牙语的Locale生成所需的结果,即{{1} }
es_ES
结果是:
// Grab currency formatter for the desired Locale
locale = createObject("java", "java.util.Locale").init("es", "ES");
formatter = createObject("java", "java.text.NumberFormat").getCurrencyInstance(locale);
// Suppress decimal places
formatter.setMaximumFractionDigits(0);
writeDump( formatter.format( javacast("double", 1999)) );
请记住,java的预定义数字和日期格式基于所使用的Locale的标准约定。其中包括小数分隔符,货币符号等详细信息 - 甚至包括货币符号的位置。虽然您可以根据需要更改格式,但通常最好将其保持在普通用户的预期范围内。