sprintf运行不正常

时间:2013-03-14 12:56:59

标签: php printf

我希望号码" 9239"出现" 9.24"。 同上和#34; 9.2"显示" 9.20"。 同上" 10"出现" 10.00" ...

我用

$carat = sprintf ('%02d.2f', $carat);

但这不是

你能帮助我吗?

2 个答案:

答案 0 :(得分:2)

您只能使用printf格式进行此操作。首先将其转换为适当的数字:

$carat = sprintf('%.02f', $carat / 1000);

演示:

php > printf("%.02f\n", 9239 / 1000);
9.24
php > printf("%.02f\n", 9200 / 1000);
9.20

答案 1 :(得分:1)

我建议您仔细查看number_format()函数

来自php.net的Exampel如下

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,235

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

我还可以建议有专门针对资金的功能,money_format()

money_format()函数根据您的setLocale进行调整。

number_format() on php.net