我用我正在工作的代码解决了这个问题,但这让我很烦恼。
我知道在某些情况下浮点只会与舍入混淆。我知道 php 使用类型推断,并且当您在字符串之间进行算术操作时会自动转换(我的意思是,在这种特殊情况下,在我的示例中)。
'手动编写代码'做同样的事情,160.2 * 50的结果是8010,当转换为整数结果时不需要四舍五入。只是承认。如果有人知道为什么会发生这种情况,它会启发我。
echo "160.2" * "50"; // gives 8010
echo (int) ((float)"160.2" * (int)"50"); // Gives 8009
我解决了这个问题,我的代码现在可以工作了;这只是为了好玩。我想知道为什么以及如何,一步一步地 php 搞砸了这个。php在哪里失去分辨率?在哪一步?
提前致谢 :)