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

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

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

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

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

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

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


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