Сегодня я начал писать небольшой PHP-код, и это оставило меня в замешательстве, и поэтому я припарковался здесь.
<?php echo (int) ((0.5 + 0.3) * 10); // Outputs 8 as expected <?php echo (int) ((0.1 + 0.7) * 10); // Outputs 7 . How ????
Может ли кто-нибудь ответить с подробным объяснением?
Это связано с тем, что представление с плавающей запятой в компьютерах не является точным для некоторых чисел. Как уже было сказано в комментариях, 0.7
представляется внутренне как 0.699999
или около того.
Есть два веб-сайта, которые постоянно появляются в таких вопросах:
Я предпочитаю первый, поскольку он немного легче для ученых. Прочтите эту информацию, и вы поймете.