![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как "урезать" лишние знаки после запятой у чисел типа real?
Megabyte © (2006-06-14 18:18:00)Сабж.
Есть функция format, но там параметр типа string. Как-то неохота туда/сюда переформатировать...
Ega23 (2006-06-15 10:53:00) [21]
> Result := trunc(Value * 100) / 100;
Неправильно.
StriderMan (2006-06-15 10:42:00) [22]
Result := trunc(Value * 100) / 100;
Megabyte (2006-06-15 10:35:00) [23]
> Desdechado © (14.06.06 20:27) [5]
> и вообще - числа с плавающей точкой имеют весьма интересный
> способ хранения, который подразумевает погрешность, влекущую
> за собой мнооооого знаков
Во-во.
Вот пример:
дано: 56,24000048
хочу: 56,24
unknown (2006-06-14 21:11:00) [24]
> ANB © (14.06.06 18:36) [2]
> > Math.RoundTo
> Но будет банковское округление
Можно указать режим округления - в контрольном слове сопроцессора, что,
собственно и делает Math.SetRoundMode
Desdechado (2006-06-14 20:27:00) [25]и вообще - числа с плавающей точкой имеют весьма интересный способ хранения, который подразумевает погрешность, влекущую за собой мнооооого знаков
Desdechado (2006-06-14 20:26:00) [26]> мне не округлять надо, а урезать знаки
тогда что есть "урезать знаки"?
давай пример до и после урезания
Megabyte (2006-06-14 18:39:00) [27]Эй, мне не округлять надо, а урезать знаки после запятой( до 2-х). Или я неправильно пользуюсь:
RoundTo(o_prih_r + o_prih_r1, 2);?
o_prih_r + o_prih_r1 - числа типа Real.
ANB (2006-06-14 18:36:00) [28]
> Math.RoundTo
Но будет банковское округление вместо математического.
unknown (2006-06-14 18:22:00) [29]Math.RoundTo