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

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

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

29 ответов

6 просмотров

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

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

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

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- Автор вопроса
Саня
Если оно подкорректирует не по предоставленной лог...

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

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта