![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Округление числа [D7, XP]
vitv © (2006-12-18 10:06:00)Для хранения числа я использую Decimal(2,2). При подсчёте среднего значения число не округляется, т.е.
10+9+10=29/3=9,6666666666(на калькуляторе)
10+9+10=29/3=9,66(в программе)
Как лучше поступить в данной ситуации?
vitv (2006-12-19 14:19:00) [1]
> Бред.
> Обосновывать не надо?
>
Понял...
Anatoly Podgoretsky (2006-12-18 15:21:00) [2]> VitV (18.12.2006 15:17:10) [10]
> Decimal(2,8),
Бред.
Обосновывать не надо?
VitV (2006-12-18 15:17:00) [3]
> Посчитай количество цифр.
>
т.е. Decimal(2,8), а отображать Decimal(2,2).
Anatoly Podgoretsky (2006-12-18 14:23:00) [4]> VitV (18.12.2006 14:14:08) [8]
Посчитай количество цифр.
VitV (2006-12-18 14:14:00) [5]Я хочу 9,67
Anatoly Podgoretsky (2006-12-18 12:30:00) [6]> vitv (18.12.2006 10:06:00) [0]
Это как, два знака после запятой и всего два знака и ты при этом хочешь видеть 9,66, нестыковка однако.
palva (2006-12-18 12:04:00) [7]И если ей присвоишь 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.
ЮЮ (2006-12-18 11:20:00) [8]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 ещё, говорят лучше.
VitV (2006-12-18 11:00:00) [9]
>
> > Для хранения числа я использую Decimal(2,2)
>
>
> А я предпочитаю Double и им подобные.
>
Почему?
VitV (2006-12-18 10:58:00) [10]
> Steep © (18.12.06 10:44) [1]
>
> Round(29/3)
SELECT AVG(CENA) FROM
ЮЮ (2006-12-18 10:52:00) [11]
> Для хранения числа я использую Decimal(2,2)
А я предпочитаю Double и им подобные.
Steep (2006-12-18 10:44:00) [12]Round(29/3)