Size: a a a

2020 December 10

IP

Iaroslav Postovalov in Kotlin JS
Alexandr Emelyanov
Флоат итак внутри двоичный. Хочется сохранение точности - храните числа двумя частями
я с этим уже разобрался
по сути, если выразить в терминах джавы, то js dataview работает вот так:
double input = 12.12345D;
buf.writeFloat(0, (float)input);
double output = (double)buf.readFloat(0);
источник

IP

Iaroslav Postovalov in Kotlin JS
Alexandr Emelyanov
Флоат итак внутри двоичный. Хочется сохранение точности - храните числа двумя частями
это бред. точности флоату хватает на 7 разрядов. но в js нету single, поэтому любое прочтение single из буфера конвертируется в double
источник

BP

Bogdan Panchenko in Kotlin JS
Iaroslav Postovalov
это бред. точности флоату хватает на 7 разрядов. но в js нету single, поэтому любое прочтение single из буфера конвертируется в double
Точности "хватает", это как ? 3/4 это сколько в двоичной системе ?
источник

BP

Bogdan Panchenko in Kotlin JS
Тут дело не в точности, а в возможности представить дробные числа в виде двоичного формата
источник

AE

Alexandr Emelyanov in Kotlin JS
Дробная часть двоичного числа с плавающей запятой может точно предоставить только числа, равные сумме 1/2^n
источник

AE

Alexandr Emelyanov in Kotlin JS
Bogdan Panchenko
Точности "хватает", это как ? 3/4 это сколько в двоичной системе ?
3/4 кстати представит)
источник

AE

Alexandr Emelyanov in Kotlin JS
0.11b
источник

IP

Iaroslav Postovalov in Kotlin JS
Bogdan Panchenko
Точности "хватает", это как ? 3/4 это сколько в двоичной системе ?
окей, сериализация 12.12345 в 32 бита возможна из-за битов округления и тп. а если расширить 12.12345 до дабла, то получится другая чиселка
источник

BP

Bogdan Panchenko in Kotlin JS
Iaroslav Postovalov
окей, сериализация 12.12345 в 32 бита возможна из-за битов округления и тп. а если расширить 12.12345 до дабла, то получится другая чиселка
Конечно, ведь блага другая
источник

IP

Iaroslav Postovalov in Kotlin JS
Bogdan Panchenko
Конечно, ведь блага другая
но только это не проблема, потому что расширить и срезать обратно можно в любом нормальном языке. а жс нету сингла
источник

BP

Bogdan Panchenko in Kotlin JS
Iaroslav Postovalov
окей, сериализация 12.12345 в 32 бита возможна из-за битов округления и тп. а если расширить 12.12345 до дабла, то получится другая чиселка
Я вам раскрою тайну, на джвм, некоторые числа могут при мат операциях но по разных типах (дабл, флоат) давать разный результат
источник

BP

Bogdan Panchenko in Kotlin JS
Iaroslav Postovalov
но только это не проблема, потому что расширить и срезать обратно можно в любом нормальном языке. а жс нету сингла
В джвм не думаю что по другому, попробуйте
источник

AE

Alexandr Emelyanov in Kotlin JS
Bogdan Panchenko
Я вам раскрою тайну, на джвм, некоторые числа могут при мат операциях но по разных типах (дабл, флоат) давать разный результат
Давайте вычтем 10.0 - 3.45 на Java) результат будет интересным)
источник

IP

Iaroslav Postovalov in Kotlin JS
Bogdan Panchenko
Я вам раскрою тайну, на джвм, некоторые числа могут при мат операциях но по разных типах (дабл, флоат) давать разный результат
так это как раз никто не гарантирует. спасибо за интересную тайну, которую я знаю.

я говорю, что float a; (float)((double)(a)==a
источник

IP

Iaroslav Postovalov in Kotlin JS
Alexandr Emelyanov
Давайте вычтем 10.0 - 3.45 на Java) результат будет интересным)
спасибо за науку, но я еще ни разу тут не сказал про приведения типов при арифметике. против такого есть котлин как раз с сильной типизацией. и спека джавы
источник

IP

Iaroslav Postovalov in Kotlin JS
Alexandr Emelyanov
Давайте вычтем 10.0 - 3.45 на Java) результат будет интересным)
я вообще не понимаю, что вы оба мне доказываете. в js как и в платформе, и в языке сингла нет. ни мне, ни вам с этим ничего не сделать
источник

BP

Bogdan Panchenko in Kotlin JS
Iaroslav Postovalov
так это как раз никто не гарантирует. спасибо за интересную тайну, которую я знаю.

я говорю, что float a; (float)((double)(a)==a
Вот такое привидения смущает (если это не псевдокод)
источник

IP

Iaroslav Postovalov in Kotlin JS
Bogdan Panchenko
Вот такое привидения смущает (если это не псевдокод)
это псевдокод
источник

AE

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

AE

Alexandr Emelyanov in Kotlin JS
Iaroslav Postovalov
так это как раз никто не гарантирует. спасибо за интересную тайну, которую я знаю.

я говорю, что float a; (float)((double)(a)==a
Равенство ни коим местом не гарантированно
источник