Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置变量和限制小数的最大值和最小值_Php_Max_Rounding_Min - Fatal编程技术网

Php 设置变量和限制小数的最大值和最小值

Php 设置变量和限制小数的最大值和最小值,php,max,rounding,min,Php,Max,Rounding,Min,我有一个变量$percentchance,表示某件事情成功的概率百分比。我想要帮助的是,它永远不会显示在100上方或0下方 目前,我已使用此min函数从不超过100 另一个问题是,有时我会得到百分比的值,比如26.3456,我希望通过某种方式使其向上或向下舍入,在这种情况下只显示2个小数,比如26.35。必须为第一个问题设置上限和下限。第二个问题可以通过number\u格式解决 例如: echo number_format(min(100, max(0, $x)), 2); 要强制始终四舍五

我有一个变量
$percentchance
,表示某件事情成功的概率百分比。我想要帮助的是,它永远不会显示在
100
上方或
0
下方

目前,我已使用此
min
函数从不超过
100


另一个问题是,有时我会得到百分比的值,比如
26.3456
,我希望通过某种方式使其向上或向下舍入,在这种情况下只显示2个小数,比如
26.35

必须为第一个问题设置上限和下限。第二个问题可以通过
number\u格式
解决

例如:

echo number_format(min(100, max(0, $x)), 2);
要强制始终四舍五入到下一个第二位数(例如,
1.111
将四舍五入到
1.12
),您可以使用
ceil

echo number_format(min(100, max(0, ceil($x*100)/100)), 2);

如果需要仅用两个小数点进行四舍五入,请使用
round()


您可以创建一个函数,将新值分配给
$percentchance
,并检查其新值是否高于100。基本上,OOP会有很大帮助there@mickmackusa
number\u format()
ceil
代码段显示了如何将
1.111
四舍五入到
1.12
。该示例使用
ceil()
在特定数字(例如,第二个十进制数字)后面加上一个大于0的数字时进行四舍五入
round
在调用
round(1.111,2)
时不会进行取整
ceil(1.111*100)/100
将返回
1.12
。这是问题最后一句含糊不清的例子。
round()
$mode
选项对于这种情况没有解决方案。@mickmackusa当$x=1.111时,应该是1.11,如果$x=1.116,应该是1.12,答案是正确的:第一个代码段具有预期的舍入行为,第二个代码段是一个加法,它显示了如何始终进行舍入。
echo round(26.3456, 2);