示例代碼:$fmt = new NumberFormatter('sv_SE', NumberFormatter::PERCENT);
var_dump($fmt->format(99.99));預(yù)期輸出:string(9) "99,99 %"實(shí)際輸出:string(9) "9 999 %"分析:我一定是“錯(cuò)過(guò)了什么”。我已經(jīng)有了百分比數(shù)字(九點(diǎn)九點(diǎn)九點(diǎn)九點(diǎn)九點(diǎn)),我想要的只是為給定的語(yǔ)言+區(qū)域設(shè)置組合適當(dāng)?shù)剌敵鏊?。例如,在美?guó),它是“99.99%”,小數(shù)點(diǎn)標(biāo)記的句點(diǎn),百分比數(shù)字和百分號(hào)之間沒(méi)有空格,而在瑞典,它是“99,99%”,小數(shù)點(diǎn)標(biāo)記有逗號(hào),中間有一個(gè)空格。在其他語(yǔ)言環(huán)境/語(yǔ)言中可能還有許多其他規(guī)則,我只是還沒(méi)有遇到。我不希望PHP以任何方式“進(jìn)一步處理”我正在喂養(yǎng)它的數(shù)字。它已經(jīng)“完成”。。無(wú)需更多處理。坦率地說(shuō),我甚至不明白為什么PHP把它變成“9999”,當(dāng)它被明確地給出為99.99的浮點(diǎn)數(shù)時(shí)......是否有某種隱藏的選項(xiàng)來(lái)關(guān)閉該號(hào)碼的“進(jìn)一步處理”?
1 回答

開(kāi)心每一天1111
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
NumberFormatter 假設(shè)在你的情況下,數(shù)字介于 0-1 之間 99.99/100 === 0.9999 因此你可以這樣使用它:
$fmt = new NumberFormatter('sv_SE', NumberFormatter::PERCENT); var_dump($fmt->format(99.99/100));
從閱讀文檔來(lái)看,我非常懷疑還有其他方法。
- 1 回答
- 0 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)
0/150
提交
取消