Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема лишних разрядов float, чудесно появившихся... / 14 сообщений из 14, страница 1 из 1
24.03.2019, 02:29
    #39790516
Sergey9966
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
В целом есть всего навсего вот такая проблема:

авторPHP Version 5.3.13

Много чисел из файла в Unicode, без BOM вида
автор0.71071 0.71074 0.71067 0.71071

После операции в духе:
$VAR += $A+$B;

У меня из таких данных на выходе вот такое:
автор7.9999999999969E-5
0.022489999999999

То есть огромное количество лишних разрядов, которые вообще не сдались... То есть их и быть не должно, но однако они появляются. Что такого творит php - даже понять не могу. Не было таких разрядов то и быть не должно было... Однако, они есть...

Откуда вообще такое берется?
...
Рейтинг: 0 / 0
24.03.2019, 03:01
    #39790517
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Эта "особенность" связана с ограниченными возможностями двоичного представления чисел и кратко, но заметно задокументирована . Так что, PHP тут ни при чем. Более того, в его составе есть альтернативные математические средства - bc и gmp.
...
Рейтинг: 0 / 0
24.03.2019, 03:11
    #39790518
Sergey9966
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Эта ссылка, где большими красными буквами написано о php в духе его возможностей, очень расстраивает :( Но попробую поискать, что вы еще насоветовали, все таки выход судя по всему есть :)
...
Рейтинг: 0 / 0
24.03.2019, 03:25
    #39790519
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Насоветовал про bc и gmp не я, конечно - оно там же, в красном разделе, написано. Работает относительно медленно.
Самое простое и быстрое, на мой взгляд, это разумное округление результата вычисления до нужной точности. Во всяком случае, для обычных распространенных вычислений, когда требуется точность порядка 3...6 знаков, вполне достаточно.
...
Рейтинг: 0 / 0
24.03.2019, 03:35
    #39790520
Sergey9966
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Я по тому что получается заметил, что "обманчивого" не более чем одна, судя по всему единица следующего после разряда. То есть ложного маленькая доля... Но как ее "вытащить" оттуда я понять не могу... То есть неверного самая малость ведь...

У меня со временем было такое же, оказалось что не все идеально точно... =(
...
Рейтинг: 0 / 0
24.03.2019, 03:36
    #39790521
Sergey9966
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Да и дело то в том, что она вдруг появляется... Попробую округлить, но эффект более чем странный...
...
Рейтинг: 0 / 0
24.03.2019, 03:44
    #39790523
Sergey9966
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
В целом округление взяло верх пока. Но все равно, такая странная штука.... Эти "неточности"...
...
Рейтинг: 0 / 0
24.03.2019, 06:22
    #39790529
Sergey9966
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Кстати, пока все здорово обошлось. Кажется работает. "Ответитителю" спасбо большое, я чуть в дебрю не ушел. Ну ему чувства и ласки, в далекую Самару. :) Обнимашки и спасибо.
...
Рейтинг: 0 / 0
25.03.2019, 11:54
    #39790848
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Sergey9966Эта ссылка, где большими красными буквами написано о php в духе его возможностей, очень расстраивает :( Но попробую поискать, что вы еще насоветовали, все таки выход судя по всему есть :)

это так работает во ВСЕХ языках. ибо дело не в языке а в процессоре.
...
Рейтинг: 0 / 0
25.03.2019, 12:13
    #39790872
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
ScareCrowэто так работает во ВСЕХ языках. ибо дело не в языке а в процессоре.
+

зы
когда меня спрашивают про эти вещи - отправляю на старую статью про вещественные числа
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
там паскаль, но сути это не меняет
...
Рейтинг: 0 / 0
25.03.2019, 13:40
    #39790919
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
ScareCrowдело не в языке а в процессореДаже не в процессоре, а в тех ученых мужах, которые додумались использовать двоичную систему счисления для представления/обработки данных десятичной системы счисления. :)
...
Рейтинг: 0 / 0
25.03.2019, 14:10
    #39790946
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
а были варианты )
...
Рейтинг: 0 / 0
30.03.2019, 12:45
    #39794028
Ы2
Ы2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
vkleScareCrowдело не в языке а в процессореДаже не в процессоре, а в тех ученых мужах, которые додумались использовать двоичную систему счисления для представления/обработки данных десятичной системы счисления. :)
У них были на то причины: стабилизировать два уровня напряжения на ламповой технике куда проще и надежнее, чем десять.
...
Рейтинг: 0 / 0
30.03.2019, 14:19
    #39794046
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема лишних разрядов float, чудесно появившихся...
Ы2,

Претензия к создателям php и javascript
Железо ни причём, BCD кодирование с первыми компами появилось

В PL/1 и COBOL таких проблем не наблюдается
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема лишних разрядов float, чудесно появившихся... / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]