猿问

PHP 给我错误的浮点数减法结果

我有这个代码:


<?php


$a = 991.3;


$float = floor($a);

$float = $a - $float;


echo $float;

它给了我这个结果:


0.29999999999995

为什么不0.3呢?以及如何获得0.3而不是0.29999999999995?


湖上湖
浏览 255回答 2
2回答

呼如林

这是因为 PHP 对浮点数的精度并不准确。这在关于浮点数的php 手册条目中被警告。如果你想要不同操作的数学精度,你必须使用 PHP 的bcmath扩展。我敢打赌它必须已经在您的 PHP 安装中编译,但如果没有,您可以随时谷歌如何安装它。:)
随时随地看视频慕课网APP
我要回答