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

Вниз

Округление числа   Найти похожие ветки 

 
vitv ©   (2006-12-18 10:06) [0]

Для хранения числа я использую Decimal(2,2). При подсчёте среднего значения число не округляется, т.е.

10+9+10=29/3=9,6666666666(на калькуляторе)
10+9+10=29/3=9,66(в программе)

Как лучше поступить в данной ситуации?


 
Steep ©   (2006-12-18 10:44) [1]

Round(29/3)


 
ЮЮ ©   (2006-12-18 10:52) [2]


> Для хранения числа я использую Decimal(2,2)


А я предпочитаю Double и им подобные.


 
VitV ©   (2006-12-18 10:58) [3]


> Steep ©   (18.12.06 10:44) [1]
>
> Round(29/3)

SELECT AVG(CENA) FROM


 
VitV ©   (2006-12-18 11:00) [4]


>
> > Для хранения числа я использую Decimal(2,2)
>
>
> А я предпочитаю Double и им подобные.
>

Почему?


 
ЮЮ ©   (2006-12-18 11:20) [5]

9,6666666666(на калькуляторе)

Он врет. там 6-рок должно быть гораздо больше

10+9+10=29/3=9,66(в программе)

Decimal(2,2) - по определеню, 2 знака после запятой
Почему?

Потому, что не знаю, как а программе использовать Decimal(2,2).
а Double проще простого:
var
 v: Double;

И если ей присвоишь 9.66, то и FloatToStr(v) так и вернёт 9.66, а если 9.666666, то 9.666666 :)
А Extended ещё, говорят лучше.


 
palva ©   (2006-12-18 12:04) [6]

И если ей присвоишь 9.66, то и FloatToStr(v) так и вернёт 9.66, а если 9.666666, то 9.666666 :)

А если 9.660000000000004, то вернет 9.66 - не порядок!{$APPTYPE CONSOLE}
uses SysUtils;
var
 v, t: Double;
begin
 v := 9.66;
 WriteLn(FloatToStr(v)); // 9.66
 t := 9.660000000000004;
 if v <> t Then
   WriteLn(FloatToStr(t)); // 9.66
end.


 
Anatoly Podgoretsky ©   (2006-12-18 12:30) [7]

> vitv  (18.12.2006 10:06:00)  [0]

Это как, два знака после запятой и всего два знака и ты при этом хочешь видеть 9,66, нестыковка однако.


 
VitV ©   (2006-12-18 14:14) [8]

Я хочу 9,67


 
Anatoly Podgoretsky ©   (2006-12-18 14:23) [9]

> VitV  (18.12.2006 14:14:08)  [8]

Посчитай количество цифр.


 
VitV ©   (2006-12-18 15:17) [10]


> Посчитай количество цифр.
>

т.е. Decimal(2,8), а отображать  Decimal(2,2).


 
Anatoly Podgoretsky ©   (2006-12-18 15:21) [11]

> VitV  (18.12.2006 15:17:10)  [10]

> Decimal(2,8),

Бред.
Обосновывать не надо?


 
vitv ©   (2006-12-19 14:19) [12]


> Бред.
> Обосновывать не надо?
>

Понял...



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

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

Наверх




Память: 0.49 MB
Время: 0.044 c
8-1147940602
Белый Орёл
2006-05-18 12:23
2007.01.07
Быстрая перемотка DVD


2-1166196967
DmitrichJ
2006-12-15 18:36
2007.01.07
Как измерить время выполнения операторов.


3-1161325307
fisherman
2006-10-20 10:21
2007.01.07
Кто работает с Oracle?


2-1166456508
sat
2006-12-18 18:41
2007.01.07
как свернуть программу в системный трей


15-1166105883
ArtemESC
2006-12-14 17:18
2007.01.07
"Остров"