Главная страница
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.042 c
14-1131956291
Bogdan1024
2005-11-14 11:18
2005.12.04
Crystal Reports 10


3-1129702902
Enzo_Matrix
2005-10-19 10:21
2005.12.04
Состояние AdoDataSet .


1-1131299363
Aldor
2005-11-06 20:49
2005.12.04
Корректно ли, если контейнер ответственен за уничтожение


2-1132075032
Сергей А.
2005-11-15 20:17
2005.12.04
Каким компонентам воспользоваться, чтобы закачать файл на сайт?


2-1132059310
solenko
2005-11-15 15:55
2005.12.04
Использование lib