我的变量以<?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位,我不需要显示任何小数。我无法理解如何做到这一点。
感谢大家帮助我。
答案 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。 例如