sprint不能很好地工作


sprintf doesn't work well

我希望数字"9239"显示为"9.24"。"9.2"同样显示"9.20"。"10"也出现"10.00"…

我使用

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

但这不是

你能帮我吗?

仅使用printf格式无法做到这一点。首先将其转换为适当的数字:

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

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

我建议你好好看看number_format()函数

取自php.net的例子如下

<?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

相关文章: