0.1 + 0.2 – это не совсем 0.3


Dram
143

Учу JS, читаю следующее

alert( 0.1 + 0.2 ); // 0.30000000000000004

Ну как бы принимаю сей факт и читаю дальше, 

Не только в JavaScript

Справедливости ради заметим, что ошибка в точности вычислений для чисел с плавающей точкой сохраняется в любом другом языке, где используется формат IEEE 754, включая PHP, Java, C, Perl, Ruby.

Хм… я немного знаю ПХП и такого не встречал, пишу чтобы проверить

<?php
$sum = 0.1 + 0.2;
    echo $sum; //0.3

Получаю чистые 0,3 без танцев с округлением.

Так про что они тогда? Где в пхп тоже такое?


LEOnidUKG

Нигде, просто PHP сам фиксит это, а JS выдаёт сорцы и делай с ними, что хочешь. 

Просто надо держать у себя в голове, если работаешь с плавающей точкой, ОКРУГЛЯЙ ВСЕГДА.


Dram

LEOnidUKG #:

Нигде, просто PHP сам фиксит это, а JS выдаёт сорцы и делай с ними, что хочешь. 

Понял, спс!


kreat0r

Не помню уже в какой именно функции PHP (помню только что писал что то по шифрованию) встречал точно такое же поведение. Работать нормально начинало только в седьмой с копейками версии PHP. Тоже был поначалу удивлён этим фактом.


suffix

Ну и в математике 0,1 + 0,2 не всегда 0,3 равно.

Пускай   0,1<=х<=1
Рассмотрим поле составленное из этих х по модулю 0,3
Тогда 0,1+0,2=0,1
🙂


Snake800

suffix #:
Ну и в математике 0,1 + 0,2 не всегда 0,3 равно.

Пускай   0,09(9)<х<0,9(9)
Рассмотрим поле составленное из этих х по модулю 0,3
Тогда 0,1+0,2=0,1
🙂

 Это не математика. Это софистика.


suffix

Snake800 #:

 Это не математика. Это софистика.

 Ну да 🙂


Mik Foxi

Потому что пхп самый умный язык )


Snake800

suffix #:

 Ну да 🙂

 Я уж почти подумал ты всерьёз. Правду говорят, серч  забирает чувство юмора :)))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *