我正在使用PHP日志函数[log(number,base);]我的基值是2.在某些条件下它将返回一个值-INF。然后我使用intval()函数[ intval(($value*100))/100; ]
来获取整数值,但我的问题是,对于值 -INF ,函数intval返回一个值 -9.2233720368548E + 16 ,但我期待一个价值
0而不是那个。这只发生在服务器端。在我的本地Xampp服务器它运作良好。需要你的帮助解决这个问题。
答案 0 :(得分:1)
您发布的小代码存在多个问题。
首先,你不应该依赖依赖某种形式的-INF
的代码,而是首先捕获这种情况(例如,对于你知道log2($ x)为-INF的对数) $ x = 0,因此请检查intval($x) == 0
)。
其次,您可能应该使用round()
(如果您希望通过PHP完成舍入)或floor()
(如果您想继续使用floor($x / 100) * 100
段代码)。
第三,您的问题很可能来自于服务器是64位且您的计算机是32位系统的事实。但这只是链条的终点。如果你做得恰当,你就不会遇到这个问题。
答案 1 :(得分:0)
听起来您正在尝试创建round()
功能,但为什么不使用内置功能?
$number = round($number, 2);