1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function format_number_noround($input){ $k = 1000; //一千 $m = 1000000; //一百萬 $input_f = number_format($input); $input_count = substr_count($input_f, ','); if($input_count != '0'){ if($input_count == '1'){ //為千位數的時候 return (intval(($input/$k)*10)/10).'K'; } else if($input_count == '2'){ //為百萬的時候 return (intval(($input/$m)*10)/10).'M'; }else { return '體悟心靈祥和ˊㄇˋ'; } } else { return $input; } } echo format_number_noround("12990"); |
這時會顯示為
1 |
12.9K |
規則為:
- 1000以下的數字直接顯示原數字 (478 => 478)
- 當在1,000~999,999就顯示K (123400 => 123.4K)
- 當在1,000,000~999,999,999就顯示M (12345678 => 12.3M)
- 當突破1,000,000,000,禪亞塔就會開大了ˊㄇˋ (??????)
中間的
1 |
(intval(($input/$k)*10)/10) |
可能會有人說為什麼不用number_format()這個參數來取小數點第一位就好
因為他會四捨五入,所以才改用這方法
若有其他想法或是更好做法請告訴我謝謝~
當突破10000000000,禪亞塔就會開大了ˊㄇˋ
https://uploads.disquscdn.com/images/1e30f991a4092714e97acd4fa2a171d2756d60b41f91e6dd78513b3e9a9b77f9.jpg