|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
В целом есть всего навсего вот такая проблема: авторPHP Version 5.3.13 Много чисел из файла в Unicode, без BOM вида автор0.71071 0.71074 0.71067 0.71071 После операции в духе: $VAR += $A+$B; У меня из таких данных на выходе вот такое: автор7.9999999999969E-5 0.022489999999999 То есть огромное количество лишних разрядов, которые вообще не сдались... То есть их и быть не должно, но однако они появляются. Что такого творит php - даже понять не могу. Не было таких разрядов то и быть не должно было... Однако, они есть... Откуда вообще такое берется? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 02:29 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
Эта "особенность" связана с ограниченными возможностями двоичного представления чисел и кратко, но заметно задокументирована . Так что, PHP тут ни при чем. Более того, в его составе есть альтернативные математические средства - bc и gmp. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 03:01 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
Эта ссылка, где большими красными буквами написано о php в духе его возможностей, очень расстраивает :( Но попробую поискать, что вы еще насоветовали, все таки выход судя по всему есть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 03:11 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
Насоветовал про bc и gmp не я, конечно - оно там же, в красном разделе, написано. Работает относительно медленно. Самое простое и быстрое, на мой взгляд, это разумное округление результата вычисления до нужной точности. Во всяком случае, для обычных распространенных вычислений, когда требуется точность порядка 3...6 знаков, вполне достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 03:25 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
Я по тому что получается заметил, что "обманчивого" не более чем одна, судя по всему единица следующего после разряда. То есть ложного маленькая доля... Но как ее "вытащить" оттуда я понять не могу... То есть неверного самая малость ведь... У меня со временем было такое же, оказалось что не все идеально точно... =( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 03:35 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
Да и дело то в том, что она вдруг появляется... Попробую округлить, но эффект более чем странный... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 03:36 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
В целом округление взяло верх пока. Но все равно, такая странная штука.... Эти "неточности"... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 03:44 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
Кстати, пока все здорово обошлось. Кажется работает. "Ответитителю" спасбо большое, я чуть в дебрю не ушел. Ну ему чувства и ласки, в далекую Самару. :) Обнимашки и спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 06:22 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
Sergey9966Эта ссылка, где большими красными буквами написано о php в духе его возможностей, очень расстраивает :( Но попробую поискать, что вы еще насоветовали, все таки выход судя по всему есть :) это так работает во ВСЕХ языках. ибо дело не в языке а в процессоре. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 11:54 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
ScareCrowэто так работает во ВСЕХ языках. ибо дело не в языке а в процессоре. + зы когда меня спрашивают про эти вещи - отправляю на старую статью про вещественные числа http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374 там паскаль, но сути это не меняет ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 12:13 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
ScareCrowдело не в языке а в процессореДаже не в процессоре, а в тех ученых мужах, которые додумались использовать двоичную систему счисления для представления/обработки данных десятичной системы счисления. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 13:40 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
а были варианты ) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 14:10 |
|
Проблема лишних разрядов float, чудесно появившихся...
|
|||
---|---|---|---|
#18+
vkleScareCrowдело не в языке а в процессореДаже не в процессоре, а в тех ученых мужах, которые додумались использовать двоичную систему счисления для представления/обработки данных десятичной системы счисления. :) У них были на то причины: стабилизировать два уровня напряжения на ламповой технике куда проще и надежнее, чем десять. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 12:45 |
|
|
start [/forum/topic.php?fid=23&msg=39790848&tid=1459971]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
101ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 260ms |
total: | 459ms |
0 / 0 |