![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
округление десятичных знаков
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
не знаю в делфе пройдёт.