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@mickmackusanumber\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);