Size: a a a

2020 May 18

AP

Anton Petrusevich in Modern::Perl
js начинает округления раньше
источник

VG

Vadim Goncharov in Modern::Perl
уверен, что у него просто не %.5f ?
источник

AP

Anton Petrusevich in Modern::Perl
ну типа такого, видимо, да...
источник

AP

Anton Petrusevich in Modern::Perl
l = 99999999999.0123 + 0.00231432423
l.toPrecision(25)
"99999999999.01461791992188"
источник

VG

Vadim Goncharov in Modern::Perl
даблы одни и те же в обоих, ага
источник

AP

Anton Petrusevich in Modern::Perl
ага, это нам не перл6
источник

AP

Anton Petrusevich in Modern::Perl
но вот где я с этим сталкивался и что делал...
источник

YS

Yevhen Sabodash in Modern::Perl
Anton Petrusevich
нормальное, не очень большое число, это около 18-19 знаков
в double 15 значащих знаков
источник

YS

Yevhen Sabodash in Modern::Perl
за пример с xor спасибо
источник

AP

Anton Petrusevich in Modern::Perl
я помню что-то такое именно в жс я тоже страдал, там, кажись, округления намеренно загрублены, чтобы пользователи меньше удивлялись дабл-арифметике и в результате у меня даблы не точно передавались на сервер.
источник

AP

Anton Petrusevich in Modern::Perl
и тоже в итоге передавал эти даблы как строки
источник

AP

Anton Petrusevich in Modern::Perl
но именно перлу было плевать, я не проверял вероятность того, что прислали загрублённый вариант, после того, как починил жс
источник

AP

Anton Petrusevich in Modern::Perl
то есть, проблема, что если дабл не привести к туПерсижн, то получается:
l = 99999999999.0123 + 0.00231432423
99999999999.01462
JSON.stringify({l: l})
"{"l":99999999999.01462}"
источник

AP

Anton Petrusevich in Modern::Perl
то есть, в джейсоне из жс будет более округлённый вариант, чем он был бы в других яп. фиксить надо жс.
источник

YS

Yevhen Sabodash in Modern::Perl
дело не в жс
perl -le 'print 1234567890.123456;'
1234567890.12346
источник

YS

Yevhen Sabodash in Modern::Perl
double выше своей головы не прыгнет в любом языке
источник

AP

Anton Petrusevich in Modern::Perl
Anton Petrusevich
то есть, в джейсоне из жс будет более округлённый вариант, чем он был бы в других яп. фиксить надо жс.
хм. хотя может я и не совсем прав:
$ perl -MJSON -E '$l = 99999999999.0123 + 0.00231432423; say encode_json({l=> $l})'
{"l":99999999999.0146}
источник

a

allter in Modern::Perl
Yevhen Sabodash
в double 15 значащих знаков
Кстати, если вам надо валидировать JSON, то по стандарту никто ни double ни int64 не гарантирует.
источник

YS

Yevhen Sabodash in Modern::Perl
я и не надеюсь, поэтому ожидаю строку
источник

AP

Anton Petrusevich in Modern::Perl
Yevhen Sabodash
я и не надеюсь, поэтому ожидаю строку
в общем, это довольно специальный случай. блин, я не помню таки что за трабла с даблами у меня была...
источник