Php 使用浮动时的值无效
下面的操作给出了错误的结果Php 使用浮动时的值无效,php,floating-point,floating-accuracy,Php,Floating Point,Floating Accuracy,下面的操作给出了错误的结果 $First = '45.4000'; $Second = '4.6800000000'; $Third = '50.00'; echo ( $First + $Second ) - $Third; 输出:0.0799999998 预期输出:0.08 我正在考虑如何在不使用数字格式/sprintf…等的情况下获得正确的结果 由于这个问题影响到我代码中的多个地方&必须检查所有内容和格式,这是一个痛苦的问题 作为“快速修复”,更改php.i
$First = '45.4000';
$Second = '4.6800000000';
$Third = '50.00';
echo ( $First + $Second ) - $Third;
输出:0.0799999998
预期输出:0.08
我正在考虑如何在不使用数字格式/sprintf…等的情况下获得正确的结果
由于这个问题影响到我代码中的多个地方&必须检查所有内容和格式,这是一个痛苦的问题 作为“快速修复”,更改php.ini文件中的精度设置
默认情况下,它是14,这比你几乎所有时候都需要的要多(如果你需要那么高的精度,你可以使用一个专用的数学库)。将其更改为类似4的值,结果将四舍五入到该长度-请注意,如果需要,您仍然可以使用number\u格式
逐个覆盖该值。尝试此方法
$First = '45.4000';
$Second = '4.6800000000';
$Third = '50.00';
$sk = ( $First + $Second ) - $Third;
echo round($sk,4);
?>
number\u格式/sprintf
等有什么问题。。