Задавайте вопросы, мы ответим
Вы не зашли.
Всем доброго! Спрашивал в разделе для начинающих - по сути никто не ответил.
MySQL 5.1.53-MariaDB, ОС Linux
Собственно вопрос по арифметике: если поле float умножить на -1, то для нулевых значений получаем -0.
Проверено на версиях 5.1.30, 5.0.51a - та же песня...
Проблема в том, что select ... where qty<0 такие записи не находит (равно как и where qty=-0).
Спасибо.
Неактивен
у меня where qty=-0 их находит, mysql 5.0.45
Неактивен
Нет, не находит! В Вашем примере результат - все записи как с 0, так и с -0.
Задача отыскать записи с qty=-0
Я понимаю, что вопрос в чем-то надуманный - сделать update ... set qty=0 where qty=0 по всем записям и всех дел, но сам факт значения поля -0 как-то настораживает.
Отредактированно vladkor (12.10.2011 18:49:09)
Неактивен
Неактивен
Спасибо, понятно. Однако (с точки зрения арифметики) значение -0 все же напрягает.
Неактивен
Для float есть два представления нуля. Это свойство представления чисел с плавающей точкой в x86 http://en.wikipedia.org/wiki/Floating_point#Signed_zero
Неактивен
Еще раз спасибо. Получил новые знания. История такая - в некоторых приложениях при многопользовательской работе с БД использую умножение кол-ва на -1 для блокировки неких действий других пользователей (с последующим возвратом в исходное состояние *-1). Все работает уже много лет, но недавно напоролся на этот самый -0. Впредь буду аккуратнее.
Неактивен