С Новым годом! Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
1

Умножение колонок int*float при запросе SELECT (неправильный результат)

27.10.2016, 13:06. Показов 4214. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю следующий запрос:

SQL
1
SELECT gold_price*price FROM items WHERE id=100;
Получаю результат: 21.99999988079071

А должен получить : 22

Ибо при умножении 100 * 0,22 = 22

Если же я просто сделаю такой запрос:

SQL
1
SELECT 100*0,22
То получу: 22

Я нашел такое решение:

SQL
1
SELECT CAST(gold_price*price AS SIGNED) FROM items WHERE id=100;
Но я считаю что здесь что-то не так... не использовать это решение, ибо 100*0,22 должно давать 22.

Почему так? Что я не знаю?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2016, 13:06
Ответы с готовыми решениями:

SELECT в UPDATE (Запрос в запросе). Умножение полей таблиц между собой
Привет уважаемые посетители этого форума! Не раз он меня выручал в сложных ситуациях) Надеюсь,...

Если результат деления int на int есть тип float
Есть две ситуации: int a = 10; int b = 3; c = a/b; // через несколько строчек тоже самое но...

Умножение float na int
Добрый вечер, форумчане. Нужно найти площадь круга. Вводим с клавиатуры диаметр (целое число от 1...

Ошибка при создании трех колонок (float:left, float:right и margin:0 auto;)
3-й час бьюсь, но никак не могу понять, что не так делаю. почему оранжевый блок опускается? ...

4
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
27.10.2016, 13:11 2
Цитата Сообщение от Joker555 Посмотреть сообщение
Но я считаю что здесь что-то не так
И напрасно. При арифметических операциях с типом float постоянно возникают проблемы и не только в SQL
0
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
27.10.2016, 13:27  [ТС] 3
Цитата Сообщение от Grossmeister Посмотреть сообщение
И напрасно. При арифметических операциях с типом float постоянно возникают проблемы и не только в SQL
Т.е. это нормально, использовать CAST() ? С чем это связано? Не может быть такого. Калькулятор он и в африке калькулятор.

Добавлено через 14 минут
нашел ответ:

При преобразовании в любой целочисленный тип данных значения типа float усекаются.

Короче надо использовать REAL тип как я понял. Не понятно только одно, почему при сохранении в REAL, в структуре отображается тип DOUBLE. Но по фикту реал, ибо работает все четко.
0
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
27.10.2016, 13:30 4
Цитата Сообщение от Joker555 Посмотреть сообщение
С чем это связано?
Со способом хранения float. Можешь поискать на других форумах (Delphi, C и проч.), не связанных с БД, подобные вопросы возникают периодически. Либо приводи к другому типу, либо округляй.
0
476 / 239 / 114
Регистрация: 12.05.2016
Сообщений: 647
28.10.2016, 18:11 5
Для денег в MySQL используйте ТОЛЬКО тип DECIMAL !
С плавающей точкой нельзя считать денежные суммы. Иначе вас потом бухгалтера задушат.
0
28.10.2016, 18:11
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2016, 18:11
Помогаю со студенческими работами здесь

Неправильный результат Update (select)
Есть две таблицы с одинаковыми столбцами im-nomer-col Первая таблица - Вася,,Красный;...

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int)
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй...

Результат преобразования int в float
Доброго времени суток,пример unsigned int sande1=0,sande2=0; void TForm1::mat_tt(){ float...

Перевод float в int. Неверный результат
#include <stdio.h> #include <conio.h> #include <string.h> int main() { float D; int Y;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Блоги программистов
Подброка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­хро­н­н­ы­й счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru