[英]number_format without rounding
PHP中是否有number_format
替代方案,允許我選擇千位和十進制分隔符,同時保留小數位數? 例如這樣的事情:
number_format_alternative( '1234.617', ',', '.' );
>1 234,617
但
number_format_alternative( '120.0', ',', '.' );
>120.0
我意識到我可以通過使用高得離譜的小數位數並從右邊修剪所有零來實現幾乎相同的目的,盡管第二個示例如下所示:
number_format_alternative( 120.0, ',', '.' );
>120
編輯:這就是我最終要做的事情:
function numberOfDecimals( $number ) {
return strlen(strstr(rtrim(sprintf('%.10F', $number), '0'), '.'))-1;
}
由於您是將數字作為字符串輸入到函數中,因此可以使用正則表達式查看小數點后有多少個數字,以“。”表示。 在這種情況下,然后使用將$decimals
參數設置為您剛剛計算的數字來執行number_format
。
一個有效的正則表達式為\\.\\d+
,然后減去長度減1以找到小數點,您可以回頭看看我認為性能會如何。 可能需要進行一些測試,並且我確信還會有其他正則表達式起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.