PHP圆函数

时间:2013-12-04 13:50:38

标签: php html math

我的变量以<?php echo round($value, 2); ?>的方式显示。现在我只将我的值四舍五入。

我想以这种方式对变量的结果进行舍入:

案例1:

if the result is 1,1 -> it must show 1,1000
if the result is 1,12 -> it must show 1,1200
if the result is 1,123 -> it must show 1,1230
if the result is 1,1234 -> it must show 1,1234

案例2:

if the result is 11 -> it must show 11,000
if the result is 111 -> it must show 111,00
if the result is 1111 -> it must show 1111,0
if the result is 11111 -> it must show 11111

但如果结果超过5位数(例如123456),我需要显示 123456,不带任何逗号或小数

我的想法是,如果数字超过5位,我不需要显示任何小数。我无法理解如何做到这一点。

感谢大家帮助我。

3 个答案:

答案 0 :(得分:3)

尝试此操作(仅适用于大于零的值):

echo number_format($value, $value < 10000 ? 5 - strlen((int)$value) : 0, ',', '');

或者这个(也适用于负值):

echo number_format($value, abs($value) < 10000 ? 5 - strlen((int)abs($value)) : 0, ',', '');

答案 1 :(得分:1)

案例1

使用sprintf选项

尝试功能%01.4f

例如:

$value = 11.12;
$len = 5;
echo sprintf("%01." . ($len - strlen(abs((int)$value))) . "f", $value);

答案 2 :(得分:1)

使用'print f'或sprint函数输出格式化的字符串。

arg 1,arg 2,参数将插入主字符串中的百分号。此功能“一步一步”。在第一个标志处插入arg 1,在第二个百分号处插入arg 2。 例如