2010-11-11 57 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;