#mysql #sql
Вопрос:
Я должен рассматривать десятичную дробь только до первого десятичного знака. например, 24.816,, 24.8,, 24.83 Я хочу сравнить все три значения только путем определения 24.8(это первая десятичная точка всех трех значений). Как я могу ограничить свои значения до первого знака после запятой.
Комментарии:
1. Значит, ты не хочешь округляться? Вы хотите рассматривать 24.7999 как 24.7?
2. Да, это так
Ответ №1:
Вам нужна функция TRUNCATE()
:
TRUNCATE(24.816, 1)
, TRUNCATE(24.8, 1)
и TRUNCATE(24.83, 1)
все вернется 24.8
.
Смотрите демонстрацию.
2 — й аргумент TRUNCATE()
(если положительный) — это количество знаков после запятой, которое вы хотите сохранить.
Комментарии:
1. Есть ли другой способ, кроме функции trunc?
2. @AmanThakur почему? В чем проблема с этой функцией?
3. Я просто пытался использовать это без использования функции
4. @AmanThakur такие функции, как TRUNCATE (), избавляют вас от необходимости выполнять сложные математические вычисления.
5. Не можем ли мы сделать что-то вроде чего-то с помощью подстроки?
Ответ №2:
Если вы не хотите использовать функцию truncate() :
select cast((24.79-(24.79%.1)) as decimal (18,1))
он возвращает 24,7
Комментарии:
1. Если это что-то вроде 24.87642…тогда?
2. Просто замените 24.79 на 24.87642.., он вернет 24.8. Вы можете попробовать здесь : dbfiddle.uk/…