java - 如何使用 java.text.MessageFormat 格式化小数百分比

标签 java text localization

我的百分比被默认的 java.text.MessageFormat 函数截断,你如何格式化百分比而不损失精度?

例子:

String expectedResult = "12.5%";
double fraction = 0.125;

String actualResult = MessageFormat.format("{0,number,percent}", fraction);
assert expectedResult.equals(actualResult) : actualResult +" should be formatted as "+expectedResult;

最佳答案

我认为正确的做法如下:

NumberFormat percentFormat = NumberFormat.getPercentInstance();
percentFormat.setMaximumFractionDigits(1);
String result = percentFormat.format(0.125);

它还考虑了内化。例如,在我使用匈牙利语言环境的机器上,我得到了预期的“12.5%”。将 percentFormat 初始化为 NumberFormat.getPercentInstance(Locale.US) 当然会给出“12.5%”。

关于java - 如何使用 java.text.MessageFormat 格式化小数百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/698261/

相关文章:

python - 用 Python 替换文件中的文本

Android build.gradle defaultConfig { resConfig "en"} 对 Google Play 商店本地化和分发的影响

java - JSR310 如何国际化月日模式?

Java正则表达式匹配用冒号分隔的多个数字序列

java - 仅当字符串中的字符未转义时才匹配正则表达式

ruby - 使用 vim,是否有命令自动换行粘贴文本?

python - CSV Writer 在 Excel 2013 中按顺序截断字符

ios - 应用程序如何将存储的通知显示为本地化字符串?

java - 返回超过 5 个字母的字符串单词数组

java - DSE 5.0 Graph with Java 中真的需要executeGraph()吗?