Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Round   Найти похожие ветки 

 
MakNik   (2005-11-09 17:53) [0]

Есть запрос:

Declare @I Float Set @I=23.075
Select Round(23.075,2),Round(@I,2),Round(@I*100,0)*0.01


Подскажите, пожалуйста, как правильно использовать ф-цию Round так, чтобы результат округления был правильный (23.08)?


 
Bronco ©   (2005-11-09 18:01) [1]

Declare @I numeric(x, y) Set @I=23.075
?


 
Ega23 ©   (2005-11-09 18:08) [2]

Используй вместо float тип numeric


Declare @I numeric(16,8) Set @I=23.075
Select Round(23.075,2),Round(@I,2), Round(@I*100,0)*0.01

                                                   
------- ------------------ -------------------------
23.080  23.08000000        23.0800000000

(1 row(s) affected)



 
MakNik   (2005-11-10 12:52) [3]

... Это понятно, с numeric(16,8) работает правильно
... а объясните, плз., начинающему, почему с Float не работает?


 
Ega23 ©   (2005-11-10 13:15) [4]


> .. Это понятно, с numeric(16,8) работает правильно
> ... а объясните, плз., начинающему, почему с Float не работает?
>
>


Залезь в BOL и почитай внимательно. Только внимательно, не поленись.


 
MakNik   (2005-11-10 13:22) [5]

... читал внимательно... не нашел... тыкните носом...

п.с. Опытным путем определил что такой эффект при округлении с типом Float не возникает при округлении до целого или до 1-го знака, а проявляется при округлении до 2-го и более знака... как это объяснить?


 
MakNik   (2005-11-15 11:31) [6]

... еще заметил что под разными системами округление работает по разному...


 
Ega23 ©   (2005-11-15 12:27) [7]


> ... читал внимательно... не нашел... тыкните носом...


Даю наводку: float - число с плавающей запятой.


 
Anatoly Podgoretsky ©   (2005-11-15 13:20) [8]

И еще не умножать на 0,01, а делить на 100


 
MakNik   (2005-11-16 11:14) [9]


> И еще не умножать на 0,01, а делить на 100

... а в чем разница?


 
DiamondShark ©   (2005-11-16 19:06) [10]


> MakNik   (16.11.05 11:14) [9]
>
> > И еще не умножать на 0,01, а делить на 100
>
> ... а в чем разница?

Число 0.01 невозможно точно представить как двоичное число с плавающей точкой.



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.053 c
14-1131654391
mmms
2005-11-10 23:26
2005.12.04
Как писать проект в команде, если ты начальник :/


2-1131980100
Eksell
2005-11-14 17:55
2005.12.04
WriteProcessMemory


2-1132248926
Юра Войтюк
2005-11-17 20:35
2005.12.04
ПОМОГИТЕ ЧАЙНИКУ


6-1124781103
tomkat
2005-08-23 11:11
2005.12.04
Как в INDY SMTP вложить атач ?


14-1132205470
Seer
2005-11-17 08:31
2005.12.04
Изменить/создать .dcr