簡體   English   中英

數字格式,不取整

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM