-3

我希望数字“9239”出现“9.24”。“9.2”同上显示“9.20”。“10”的同上出现“10.00”......

我用

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

但这并不

你能帮助我吗?

4

2 回答 2

2

您不能仅使用printf格式化来做到这一点。首先将其转换为适当的数字:

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

演示:

php > printf("%.02f\n", 9239 / 1000);
9.24
php > printf("%.02f\n", 9200 / 1000);
9.20
于 2013-03-14T12:58:30.233 回答
1

我建议你好好看看 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进行调整。

php.net 上的 number_format()

于 2013-03-14T13:02:02.013 回答