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

Подскажите с нубским вопросом: почему при суммировании значений за день

появляются дробная длинная часть?
Например, проджажи за 1 день должны быть: 91231.29, а запрос возвращает: 91231.29000000002
Тип данных в колонке summa я ставил Float64

Запрос очень простой:
select
toDate(date) as date,
sum(summa) as summa
from sales
group by date
order by date
limit 2

Поптылся нагуглить, но ничего кроме функций округления не нахожу, но кажется в чем-то другом проблема.

2 ответов

9 просмотров

Так работают числа с плавающей запятой в компьютерах. Если нужна точность - используйте тип Decimal

Sergey-Filkin Автор вопроса
Ivan Kalinin
Так работают числа с плавающей запятой в компьютер...

Ок, спасибо, поменяю тип. Но как-то странно. У меня есть несколько значений в колонке, все они с двумя занками после запятой, откуда при их сложении возмуться 3,4 и более знаки после запятой?

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

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

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
51
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть предложения, как подобное можно упростить?
Hemul GM
12
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Карта сайта