- 1
- 2
- 3
let x = 0.1;
let y = 0.2;
let z = x + y
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−7
let x = 0.1;
let y = 0.2;
let z = x + y
чему равно?
Или вообще мелкие числа, у которых мантисса помещается в инт, он загоняет в инт, эмулируя фиксированного питуха в десятичной системе. Т.е. скажем, 1234.5 представляется как int (1234.5 * 10000).
Сначала линкер, теперь блять до intа докатились!
https://spin.atomicobject.com/2018/11/05/using-an-int-type-in-typescript/
* использовать дроби
* использовать символьные вычисления
* оставить как есть
* использовать язык для белых
Язык называется typeScript.
Казалось бы причём здесь типы?
Да, багор )))
Интересно, если поставить американскую локаль, а потом вызвать toLocaleString, а потом кастануть к Number, будет 0.3?
________
* А что, они уже все хромые? Девтулы выглядят так же с точностью до вида иконок и подсказывают результат так же
Всегда так делаю.
> а потом вызвать toLocaleString, а потом кастануть к Number, будет 0.3?
Да
Шах и мат, PHP!
Заметим, что и по типам тут лучше. В [...] передаётся String - как и планировалось в ECMAScript.
А такое в виндах работает?
>Шах и мат, PHP!
Говно какое-то трёхразрядное.
Upd: можно так
В версии 2022 года уже так:
https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number.prototype.tolocalestring
>Number.prototype.toLocaleString method as specified in the ECMA-402 specification.
А вот что говорит по этому поводу ECMA-402
Поскольку в божественном 5.1 этого не было. А все что дальше эти все раздутые ECMA-402 это ересь и питушня.
Зато в 5.1 есть toPrecision.
https://262.ecma-international.org/5.1/#sec-15.7.4.7
Выходит гораздо чище и работает даже в IE6.
Стандарт крестов ECMAScript'а не мог становиться ещё толще и вытекал из треда ECMA-262.
А если просто передать её аргументом?
+((0.1+0.2).toLocaleString('en-UK'))
Я не подумал про возможность педерачи аргумента, пошёл гуглить локалепитушню.
P.S. Поздравляю с сотым говнокодом!
и my ключ слово (в перле)
и go ключ слово сами знаете где
(69)
Но там, как я помню, имена массивов и строк могли состоять Толька из одной буквы.
Ты только сегодня узнал про IEEE 754?
Я тебе завидую.. ты только еще в самом начале интереснейшего пути в программирование... Тебя ждет не мало радости и удивления
Ну или юзать decimal'ы вместо флоатов.
Авджрукк там не 0.1 и 0.2, Math.Pi + Math.sqrt(2)?
Есть проблема с представлением их в виде десятичных дробней
Ну так компьютер не виноват что тупые куски мяса не могут в нормальное представление.
Если завтра прилетят инопланетяни, которые все числа представляют как степени числа 42, то ваши десятичные числа тоже соснут
Ну разве что тупо округлять до 6-7 значащих цифр.
Если у тебя все позиции идут с точностью до 3 значащих цифр, значит всё, что дальше — погрешности и их можно округлять.
А вообще в таких случаях цари не используют флоаты, а просто используют милионные? доли и для спокойствия питуха, просто ставят запятую в нужном месте.
Ну и сравнивать в некоторых случаях, по-хорошему, надо расстояния в пикселях, если уж на то пошло, чтобы меньше застревали в текстурах.
Э! До проблемы целых пока не дошли. Тут только проблемы нецелых обсуждаются.
Использовать нормальный язык программирования, где все числа целые (например, Brainfuck)
графики рисовать?
https://reference.wolfram.com/language/guide/CLanguageInterface.html
Простите меня!