gpt4 book ai didi

gwt - 如何指定 GWT 的 NumberFormat 使用的千位和小数分隔符

转载 作者:行者123 更新时间:2023-12-04 11:56:57 25 4
gpt4 key购买 nike

在 GWT 的 NumberFormat 类 (http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/i18n/client/NumberFormat.html) 的文档中,我读到:

“用于无穷大、数字、 千位分隔符、小数分隔符 等的前缀、后缀和各种符号。 可以设置为任意值 ,但是在格式化过程中必须小心它们符号和字符串不冲突,否则解析不可靠。例如小数点分隔符和千位分隔符应该是不同的字符,否则将无法解析。”

我的问题是,我如何确保“。”用作千位分隔符,而“,”用作独立于用户区域设置的小数分隔符?
换句话说,当我使用模式 "###,###,###.######"时,我希望 GWT 将 double 值 1234567.89 始终 格式化为 "1.234.567,89"用户的语言环境是什么。

最佳答案

解决这个问题需要一些工作。来自 docssource对于 NumberFormatter,似乎只能使用 Locales 来设置这些值。他们确实说你可以设置 组分隔符 但没有这样的例子对我有用。虽然您可能认为在底部执行此操作的 Java 方法会起作用,因为 GWT 模拟了 DecimalFormatDecimalFormalSymbols类,他们没有 formally support他们。也许他们将来会。此外,他们在 LocaleInfo class 中说您可以修改语言环境,我发现没有这样的方法允许这样做。

所以,这里是 破解方法 :

    NumberFormat.getFormat("#,##0.0#").format(2342442.23d).replace(",", "@");

正确的方式,但尚未支持 GWT :

使用十进制格式器:
    // formatter
DecimalFormat format= new DecimalFormat();
// custom symbol
DecimalFormatSymbols customSymbols=new DecimalFormatSymbols();
customSymbols.setGroupingSeparator('@');
format.setDecimalFormatSymbols(customSymbols);
// test
String formattedString = format.format(2342442.23d);

输出:

2@342@442.23

关于gwt - 如何指定 GWT 的 NumberFormat 使用的千位和小数分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9805941/

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