Size: a a a

2020 April 23

АВ

Александр В in Delphi & Lazarus
А, ну как я вижу на msdn апи расширили, и костыль прикрутили для .net
источник

АВ

Александр В in Delphi & Lazarus
А так - использовать как я выше написал
источник

Р

Рус in Delphi & Lazarus
Александр В
Ну так то да, и строк тысяч наверное 30. Но вообще зачем юзать эту древнюю либу? Только если для каких-то com вещей.
Нужно, например число 0.75 округлить с точностью 0.5. Т.е. по правилам математического округления должен получить 1. Но увы, иногда получаю 0.5. Это катастрофа. Эпсилон не сильно помогает.
источник

Р

Рус in Delphi & Lazarus
Александр В
А так - использовать как я выше написал
Спасибо, буду пытаться👍
источник

АВ

Александр В in Delphi & Lazarus
А....Ceil? Оно округляет к ближайшему большему целому
источник

АВ

Александр В in Delphi & Lazarus
А  Floor к меньшему. Не все в Round опирается:D
источник

Р

Рус in Delphi & Lazarus
А как узнать когда именно использовать Ceil или Floor?
источник

SP

Sergey Pechenko in Delphi & Lazarus
Рус
А как узнать когда именно использовать Ceil или Floor?
Ceiling - потолок, вверх. Floor - пол, вниз.
источник

Р

Рус in Delphi & Lazarus
Sergey Pechenko
Ceiling - потолок, вверх. Floor - пол, вниз.
Правильно, если >= 0.5 - Ceil, Только вот не всегда Extended выдаёт этот 0.5
источник

Р

Рус in Delphi & Lazarus
Иногда получается 0.499999999999999999...  и приходится брать бубен
источник

АВ

Александр В in Delphi & Lazarus
Рус
А как узнать когда именно использовать Ceil или Floor?
Ну а тут все зависит, можно на досуге почитать: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
источник

I

Igor in Delphi & Lazarus
главное не забывать, что в дельфях по умолчанию бухгалтерское округление
источник

Р

Рус in Delphi & Lazarus
Александр В
Ну а тут все зависит, можно на досуге почитать: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
Это наверное более продвинутая версия вот этого?
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
источник

Р

Рус in Delphi & Lazarus
Igor
главное не забывать, что в дельфях по умолчанию бухгалтерское округление
Ничего подобного
источник

Р

Рус in Delphi & Lazarus
Прочитал, легче не стало)))
источник

I

Igor in Delphi & Lazarus
Рус
Ничего подобного
напечатай round(1.5) и round(2.5)
источник

Р

Рус in Delphi & Lazarus
Igor
напечатай round(1.5) и round(2.5)
round для лошар. Нормальные мужики пользуют SimpleRoundTo
источник

Р

Рус in Delphi & Lazarus
Рус
round для лошар. Нормальные мужики пользуют SimpleRoundTo
Но и он не совершенен. С ним то и проблемы
источник

АВ

Александр В in Delphi & Lazarus
SimpleRoundTo? Там бухгалтерское округление
источник

Р

Рус in Delphi & Lazarus
Александр В
SimpleRoundTo? Там бухгалтерское округление
нет
function SimpleRoundTo(const AValue: Single; const ADigit: TRoundToRange = -2): Single;
var
 LFactor: Extended;
begin
 LFactor := IntPower(10.0, ADigit);
 if AValue < 0 then
   Result := Int((AValue / LFactor) - 0.5) * LFactor
 else
   Result := Int((AValue / LFactor) + 0.5) * LFactor;
end;
источник