CHill60
Вы ошибаетесь насчет поплавка.
Следующий фрагмент кода
create table test (a1 float, a2 decimal(15,2), a3 numeric(15,2), a4 real)
insert into test values (2.7777,2.7777,2.7777,2.7777)
select * from test
дает результаты
2.7777 2.78 2.78 2.7777
Но если я изменю определение a2 и a3
create table test2 (a1 float, a2 decimal(15,4), a3 numeric(15,4), a4 real)
insert into test2 values (2.7777,2.7777,2.7777,2.7777)
select * from test2
дает
2.7777 2.7777 2.7777 2.7777
Чтобы получить желаемый результат 2.77 то вы можете использовать
КРУГЛЫЙ [
^] заставляя его усечь. Сравните эти результаты с
select round(a1, 2), round(a1, 2, 1), round(a2, 2), round(a2, 2, 1), round(a3, 2), round(a3, 2, 1), round(a4, 2), round(a4, 2, 1) from test2
что дает результаты (я добавил вертикальные полосы, чтобы было легче видеть каждый столбец
2.78 2.77 | 2.7800 2.7700 | 2.7800 2.7700 | 2.78 2.77
Однако вы действительно должны делать усечение в своем слое презентации.
Таким образом, храните свои данные в столбце типа
float
,
decimal
(с достаточным количеством цифр справа от десятичной точки, определенной),
numeric
(комментарий как для десятичной дроби) или
real
и либо усеките его в пользовательском интерфейсе, либо используйте
ROUND(yourColumnName, 2, 1)