为了账号安全,请及时绑定邮箱和手机立即绑定

如何使NumberFormatter格式成为百分比数字而不“重新解释”它?

如何使NumberFormatter格式成为百分比数字而不“重新解释”它?

PHP
茅侃侃 2022-08-19 10:45:37
示例代码:$fmt = new NumberFormatter('sv_SE', NumberFormatter::PERCENT); var_dump($fmt->format(99.99));预期输出:string(9) "99,99 %"实际输出:string(9) "9 999 %"分析:我一定是“错过了什么”。我已经有了百分比数字(九点九点九点九点九点),我想要的只是为给定的语言+区域设置组合适当地输出它。例如,在美国,它是“99.99%”,小数点标记的句点,百分比数字和百分号之间没有空格,而在瑞典,它是“99,99%”,小数点标记有逗号,中间有一个空格。在其他语言环境/语言中可能还有许多其他规则,我只是还没有遇到。我不希望PHP以任何方式“进一步处理”我正在喂养它的数字。它已经“完成”。。无需更多处理。坦率地说,我甚至不明白为什么PHP把它变成“9999”,当它被明确地给出为99.99的浮点数时......是否有某种隐藏的选项来关闭该号码的“进一步处理”?
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

NumberFormatter 假设在你的情况下,数字介于 0-1 之间 99.99/100 === 0.9999 因此你可以这样使用它:

$fmt = new NumberFormatter('sv_SE', NumberFormatter::PERCENT);
var_dump($fmt->format(99.99/100));

从阅读文档来看,我非常怀疑还有其他方法。


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信