Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

округление десятичных знаков


ser35 ©   (2005-03-05 20:55:00) 

Здравствуйте Мастера!
Подскажите как правильно преобразовать число с 3-4 числами после запятой до двух? Попробовал использовать функцию round, округляет до целого

s:real;
Form9.Edit26.Text:=FloatToStr(s);


Mars   (2005-03-06 01:38:00) [1]

Попробуй поэкспериментировать с SimpleRoundTo

В хелпе сказано, что
Round и RoundTo- это "банковское округление" - если десятичная часть 0.5, то окгругялет до ближаешего четного, т. е. Round(3.5)=4 и Round(4.5)=4
А SimpleRoundTo - "арифметическое округление" - Round(3.5)=4 и Round(4.5)=5


Knight   (2005-03-05 22:28:00) [2]


> ] ser35   (05.03.05 22:14)

А вообще, маладца... все бы так :)))


Knight   (2005-03-05 22:20:00) [3]

Наверно это уже после вызова SetRoundMode()...


Knight   (2005-03-05 22:18:00) [4]

RoundTo(1.234, -2) 1.23
RoundTo(1.235, -2) 1.24
RoundTo(1.245, -2) 1.24

что-то я логики в последнем примере не уловил...


ser35   (2005-03-05 22:14:00) [5]

Спасибо за советы. Сделал немного по другому, и получилось (Мне, как новичку - это показалось очень удобным):
(RoundTo (s,-2)


Anatoly Podgoretsky   (2005-03-05 21:42:00) [6]

FormatFloat эквивалент этого переменная:8:2, оно же STR, оно же Format, оно же еще некоторые функции. Но оно же все не соответствует вопросу. Но и он не соответсвует тому что дальше пишется в сообщении.

В совокупности я бы посоветовал использовать FormatFloat , из-за его чрезвычайной наглядности.


GuAV   (2005-03-05 21:40:00) [7]

FloatToStrF и Str тоже не подходит ?


Leeechhhh   (2005-03-05 21:13:00) [8]

ну про тупо =)
хотя почему, тоже вариант, по идее должно всё проходить


Knight   (2005-03-05 21:11:00) [9]


>  [4] ser35   (05.03.05 21:05)
> Пробовал, не проходит...

Что не проходит?


Leeechhhh   (2005-03-05 21:08:00) [10]

s:real;
Form9.Edit26.Text:=FloatToStr(s: к-во_целых_элементов: к-во_элементов_после_запятой);


Leeechhhh   (2005-03-05 21:08:00) [11]

помому так


ser35   (2005-03-05 21:05:00) [12]


> А ты до округленя умнож на 100, после округления раздели
> на 100... тупо, но возможно сойдёт... :)

Пробовал, не проходит...


Knight   (2005-03-05 21:02:00) [13]


> ser35   (05.03.05 20:55)
> округляет до целого

А ты до округленя умнож на 100, после округления раздели на 100... тупо, но возможно сойдёт... :)


GuAV   (2005-03-05 20:59:00) [14]


> ser35

FloatToStrF

Только это строковое представление

> с 3-4 числами после запятой до двух
, а не округление, округлить вряд ли получтися.


> Leeechhhh

И так можно. См. процедуру str


Leeechhhh   (2005-03-05 20:57:00) [15]

эх, в паскале всё просто было!
переменная:8:2
не знаю в делфе пройдёт.


Наверх

Титульная страница Поиск, карта сайта Написать письмо