![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Округление и другие операции над числами
Amentah © (2006-01-20 09:19:00)Подскажите, пожалуйста, каким образом превратить число
56,764 в 56,76
56 в 5,00
а 56,765 в 56,77?
zorik (2006-01-20 12:58:00) [1]
> Што ви такое говорите?
Кстати Round(56,765*100)/100 равно 56,76 , а не 56,77
Проверяйте!
zorik (2006-01-20 12:54:00) [2]согласен, с "криво" я погорячился. Все так и задумано. Я имел ввиду, что:
...
Round(2.3) = 2
Round(2.4) = 2
Round(2.5) = 2
Round(2.6) = 3
...
Round(3.4) = 3
Round(3.5) = 4
Round(3.6) = 4
...
а автору вопроса нужно "простое класическое математическое" округление, судя по всему :-)
Gero (2006-01-20 12:39:00) [3]> лутче
Чем «лутче»?
Плохиш (2006-01-20 12:34:00) [4]
> zorik © (20.01.06 12:10) [6]
> Round() работает криво
Што ви такое говорите?
zorik (2006-01-20 12:10:00) [5]Round()работает криво, лутче --
function MyRound(const X:Double; N: Byte): Double;
var
i: Byte;
n1: Integer;
begin
n1 := 1;
for i := 1 to N do n1 := n1*10;
Result := Trunc(X*n1+0.5)/n1;
end;
где N - количество знаков после запятой
Gero (2006-01-20 11:46:00) [6]uses Math
RoundTo
piople (2006-01-20 11:28:00) [7]рамблер + паскаль + округление вещественных чисел...
DimonS (2006-01-20 10:57:00) [8]Хм...
Попробуй через FormatFloat(). Правда будет строка, но ее то легко преобразовать обратно в Float. Но это собственно не округляет, а отбрасывает лишние цифирьки. Но в общем то хватает.
Amentah (2006-01-20 09:57:00) [9]простите, опечатка
56 в 56,00
Andy BitOff (2006-01-20 09:56:00) [10]Amentah (20.01.06 09:19)
...каким образом...
Почитать про Round, а так же See alsoк нему.
Правда 56 в 5,00так всеравно не получится.