2010-11-11 56 views
1

我有存儲在一個十進制10,2場打印在PHP一分錢值

1052730 
956700 

如何打印此使用PHP,這樣的價值是一樣

$10,527.30 
$9,567.00 

基本上這些值我試圖避免值

$1,052,730 <--- this i dont want 
+1

number_format($ number,2) – Gazler 2010-11-11 17:58:36

回答

4

可以使用

money_format($format, $value) 

function in php。格式的細節被給出here

+0

不錯,除了數字是* 100(意思是'$ value = 1052730'確實代表'10527.30')... – ircmaxell 2010-11-11 18:05:09

+1

您可以這樣做:money_format($ format,$ value/100)? – 2010-11-11 18:10:58

+0

請注意,money_format()不是跨平臺的,它取決於語言環境。 – 2010-11-11 18:20:22

1

好吧,假設1052730是真的10527.30在你的問題提到:

$number = 1052730; 
$decimals = $number % 100; //30 in this case 
$digits = floor($number/100); 
$paddedDecimals = str_pad($digits, 2, '0', STR_PAD_LEFT); 
$out = '$' . number_format($digits, 0).'.'.$paddedDecimals; 
echo $out; // $10,527.30 

有用於小數部分沒有浮點計算,所以沒有必要擔心精度問題(雖然這個精度,將可能很難得到一個浮點錯誤在那裏)...

1

只是除以100:

<?php 

echo number_format(1052730/100, 2, '.', ',') . PHP_EOL; 
echo number_format(956700/100, 2, '.', ',') . PHP_EOL;