php 7.1 中的舍入不正确
incorrect rounding in 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
我试着把第2个字符后的小数部分截掉,然后把它翻译成整数。结果出错了。告诉我如何正确翻译。
var_dump( 1.15 * 100 );
输出一个浮点数 - 未修改。
var_dump( (int)(1.15 * 100) );
输出一个 int - 上面的 float 转换为 int,即使对于看似相同的数字也会四舍五入。
$var1 = (string)(1.15 * 100);
var_dump( (int)($var1) );
您需要先将 float 转换为字符串,然后再转换为 int。
编辑:或单行答案:intval(strval(1.15 * 100))
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
我试着把第2个字符后的小数部分截掉,然后把它翻译成整数。结果出错了。告诉我如何正确翻译。
var_dump( 1.15 * 100 );
输出一个浮点数 - 未修改。
var_dump( (int)(1.15 * 100) );
输出一个 int - 上面的 float 转换为 int,即使对于看似相同的数字也会四舍五入。
$var1 = (string)(1.15 * 100);
var_dump( (int)($var1) );
您需要先将 float 转换为字符串,然后再转换为 int。
编辑:或单行答案:intval(strval(1.15 * 100))