Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Округление чисел в большую сторону / 8 сообщений из 8, страница 1 из 1
04.04.2018, 12:18
    #39625436
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
Здравствуйте.

Как можно сделать округление числа в большую сторону? То есть при округлении числа 10.875 до 2 знаков после разделителя, хотелось бы получить число 10.88, SimpleRoundTo(10.875,-2) и RoundTo(10.875,-2) дают 10.87.
...
Рейтинг: 0 / 0
04.04.2018, 12:24
    #39625440
DesWind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
roma1975,

R:=Ceil(r*100)/100
...
Рейтинг: 0 / 0
04.04.2018, 12:49
    #39625454
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
Спасибо мне тоже пришла в голову эта мысль, но с Round(10.8759*100)/100 и Round даёт более правильное округление до 2 знаков.
...
Рейтинг: 0 / 0
04.04.2018, 14:03
    #39625514
DesWind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
roma1975,
Округления разные "математические", "банковские"; Ceil, это просто вверх 3.1 будет равно 4.
...
Рейтинг: 0 / 0
04.04.2018, 17:39
    #39625662
Близнец1980
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
roma1975,

SetRoundMode(rmUp) и RoundTo пробовали?
...
Рейтинг: 0 / 0
05.04.2018, 11:28
    #39625985
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
Да мне ещё посоветовали, можно ещё прибавить к числу 0.001 и RoundTo до 2 знаков сделать, RoundTo(10.875+0.001,-2).
...
Рейтинг: 0 / 0
05.04.2018, 12:04
    #39626017
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
roma1975Да мне ещё посоветовали, можно ещё прибавить к числу 0.001 и RoundTo до 2 знаков сделать, RoundTo(10.875+0.001,-2).
Напиши один раз свой библиотечный модуль округления: математический, бухгалтерский, отсечение.
Можно сделать через текстовое представление числа и будет работать правильно всегда и везде.
И забудь про эту проблему навсегда.
...
Рейтинг: 0 / 0
08.04.2018, 00:29
    #39627217
Freedoom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление чисел в большую сторону
roma1975...Как можно сделать округление числа в большую сторону? То есть при округлении числа 10.875 до 2 знаков после разделителя, хотелось бы получить число 10.88...
Например, вот так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
function Adjust(const AValue, AdjSum: Double): Double;
var
  Sign: Double;
begin
  Sign := 0.500000001; if AValue < 0 then Sign := -Sign;
  Result := Int(AValue/AdjSum + Sign) * AdjSum;
  if (abs(Result - AValue) > 0.0000001) and (Result < AValue) then
    Result := Result + AdjSum;
end;


Использование:
x := Adjust(10.875, 0.01);
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Округление чисел в большую сторону / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]