php 7.1中的不正确舍入


1.15 * 100              // 115 correct
(int)(1.15 * 100)       // 114 incorrect
intval(1.15 * 100)      // 114 incorrect
floor(1.15 * 100)       // 114 incorrect
floor(1.1501 * 100)     // 115 correct

我尝试切断第二个字符后的分数部分,然后将其转换为整数。事实证明有一个错误。告诉我如何正确翻译。

var_dump( 1.15 * 100 );输出一个浮点 - 未修改。

var_dump( (int)(1.15 * 100) );输出一个int-上方转换为int的浮子,即使在似乎相同的数字上也是舍入的。

$var1 = (string)(1.15 * 100);
var_dump( (int)($var1) );

您需要先将浮子转换为字符串,然后转换为int。

编辑:或单行答案:intval(strval(1.15 * 100))

最新更新