170 похожих чатов

Что ты хотел от этих нулей вообще и в чём

исходная проблема? Я так понял, ты что-то с чем-то сравнивал?

29 ответов

23 просмотра

В этом проблема > может в целом потеряться точность, если в числе много "типа значащих" цифр.

Саня
В этом проблема > может в целом потеряться точнос...

Это не такая уж и проблема, скорее особенность того как флоаты работают

evle- Автор вопроса
Саня
В этом проблема > может в целом потеряться точнос...

Ну да, проблема. Точность флоата ты поменять не можешь, с этим надо жить и учитывать.

Саня
Ну да. Но вот эта особенность мне "мешает"

Давай вернёмся к тому что ты пытаешься сделать. Возможно тебе нужен не float а Decimal или вообще int

evle- Автор вопроса
Саня
То есть решения нет. Ок 😄

Решение зависит от того, в чём на самом деле проблема. Пока ты так и не сказал.

evle- Автор вопроса
Arkady Strugatsky
Давай вернёмся к тому что ты пытаешься сделать. Во...

Или не сравнивать флоаты равенством, например. ;-)

Arkady Strugatsky
Давай вернёмся к тому что ты пытаешься сделать. Во...

Нужно число с плавающей запятой. Decimal тоже генерирует числа с ноликами)

Саня
Ну да. Но вот эта особенность мне "мешает"

чем мешает? в чем проблема вообще?

Arkady Strugatsky
Что такое "число с ноликом"

Число с плавающей запятой, где на N-позиции есть не значащий 0

evle- Автор вопроса
Саня
Число с плавающей запятой, где на N-позиции есть н...

Ты так и не объяснил, нафига тебе это. Хотя ответ, как это сделать, я тебе уже дал. Просто сам вопрос выглядит предельно бессмысленно.

ты всё время какие-то обрывки выдаешь. Мы так и не поняли в чем проблема.

evle- Автор вопроса

Чтобы придумать решение, нужно понять проблему. Пока у нас типичная xy-problem.

Tishka17
ты всё время какие-то обрывки выдаешь. Мы так и не...

Задача: Сгенерировал число с N кол-вом цифр после точки. Преобразовал это число в float и кинул в сервис JSON с этим числом. Сервис обработал и записал в БД число с N кол-вом цифр после точки Проблема: при сравнении чисел получаю ошибку Разбор ошибки: Ошибка в том, что число преобразованное в float имеет N-1 цифру Пример: сгенерировано 0.1110 преобразовано и отправлено в JSON 0.111 в БД записано 0.1110

evle- Автор вопроса
Саня
Задача: Сгенерировал число с N кол-вом цифр после ...

Решение: никогда не сравнивать float через ==.

evle- Автор вопроса
Саня
Задача: Сгенерировал число с N кол-вом цифр после ...

Немного для контекста. То что ты видишь там ещё какую-то цифру — не значит, что она на самом деле есть и что может быть хоть какая-то гарантия, что при передаче она не поменяется.

Саня
Задача: Сгенерировал число с N кол-вом цифр после ...

1. Если ты работаешь с float, то забудь про десятичную точку. Компьютер хранит в двоичных разрядах в виде мантисса+экспонента 2. Дробные числа всегда хранятся с погрешностью. При вычислениях погрешность увеличивается. При преобразовании в десятичную систему и обратно ещё увеличивается. Float НИКОГДА нельзя сравнивать на точное равенство, только на приближенное

2. В моём случае сравнивается логика - переданное число именно так и записывается в БД

evle- Автор вопроса

У БД есть полное право число подкорректировать под своё представление.

evle
У БД есть полное право число подкорректировать под...

Если оно подкорректирует не по предоставленной логике - мне надо об этом знать)

Tishka17
1. Если ты работаешь с float, то забудь про десяти...

Спасибо тебе огромное, оказывается, я просто забыл ввести «python manage.py migrate»

Саня
2. В моём случае сравнивается логика - переданное ...

в БД для хранения произвольных чисел обычно используется числовой тип, а не строка и ему плеватьна твои десятичные цифры

evle- Автор вопроса
Саня
Если оно подкорректирует не по предоставленной лог...

Ещё раз — флоаты так работают. И будут так работать, это не то что можно как-то поменять. Есть гарантия, что погрешность будет не больше определённого значения (в зависимости от того, что под капотом у базы для этих флоатов), но гарантии что число будет прямо таким же — нет.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта