Size: a a a

2020 December 08

с#

саша сок #KotlinGang... in Kotlin JS
Iaroslav Postovalov
нет. на других платформах это правильно работает (jvm и linuxx64)
ужас)
источник

IP

Iaroslav Postovalov in Kotlin JS
саша сок #KotlinGang
разве это не проблема чисел с плавающей точкой ?
12.12345 - это 12.12345. точности флоата на 7 разрядов хватает, просто DataView.getFloat32 какой-то идиотский
источник

с#

саша сок #KotlinGang... in Kotlin JS
Iaroslav Postovalov
нет. на других платформах это правильно работает (jvm и linuxx64)
вообще наверное это косяк котлина, что он по-разному на разных платформах работает. понятное дело, что заново это писать - не вариант, но всё таки котлин должен стараться быть одинаковым.
источник

VS

Vladimir Sitnikov in Kotlin JS
Iaroslav Postovalov
12.12345 - это 12.12345. точности флоата на 7 разрядов хватает, просто DataView.getFloat32 какой-то идиотский
Код в студию
источник

IP

Iaroslav Postovalov in Kotlin JS
саша сок #KotlinGang
вообще наверное это косяк котлина, что он по-разному на разных платформах работает. понятное дело, что заново это писать - не вариант, но всё таки котлин должен стараться быть одинаковым.
это не косяк котлина, ни разу. это косяк DataView
источник

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
Код в студию
код чего?
источник

VS

Vladimir Sitnikov in Kotlin JS
код того, как воспроизводить багу
источник

VS

Vladimir Sitnikov in Kotlin JS
Либо на JS, либо в play.kotlin.org
источник

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
код того, как воспроизводить багу
источник

IP

Iaroslav Postovalov in Kotlin JS
даже если это не баг, даже если это специально задумано добавлять в флоат рандомные разряды, то это идиотизм
источник

VS

Vladimir Sitnikov in Kotlin JS
Предлагаю сначала ознакомиться с https://ru.wikipedia.org/wiki/IEEE_754-2008, и только потом делать выводы
источник

IP

Iaroslav Postovalov in Kotlin JS
окей, то есть флоату не хватает точности, чтобы держать 7 разрядов без потери точности?
источник

VS

Vladimir Sitnikov in Kotlin JS
Число 12.12345 невозможно представить в виде float32

Вот пример: https://www.exploringbinary.com/floating-point-converter/

Самое близкое представление в float32 это 12.12345027923583984375
источник

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
Число 12.12345 невозможно представить в виде float32

Вот пример: https://www.exploringbinary.com/floating-point-converter/

Самое близкое представление в float32 это 12.12345027923583984375
а, ясно
источник

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
Число 12.12345 невозможно представить в виде float32

Вот пример: https://www.exploringbinary.com/floating-point-converter/

Самое близкое представление в float32 это 12.12345027923583984375
но почему тогда на других платформах сделали округление, которое ожидается от такого класса, а DataView выдает точное битовое представление?
источник

VS

Vladimir Sitnikov in Kotlin JS
Про какое округление-то речь? Нет тут округления нигде.
источник
2020 December 09

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
Про какое округление-то речь? Нет тут округления нигде.
а что делать тогда?
источник

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
Про какое округление-то речь? Нет тут округления нигде.
у меня пока что единственная идея - это через WASM написать нормальное конвертирование флоата в интовые биты и обратно
источник

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
Число 12.12345 невозможно представить в виде float32

Вот пример: https://www.exploringbinary.com/floating-point-converter/

Самое близкое представление в float32 это 12.12345027923583984375
ну вот в джаве 12.12345 перегоняются в интовые биты и наоборот вот таким вот образом
источник

IP

Iaroslav Postovalov in Kotlin JS
Vladimir Sitnikov
Число 12.12345 невозможно представить в виде float32

Вот пример: https://www.exploringbinary.com/floating-point-converter/

Самое близкое представление в float32 это 12.12345027923583984375
источник