![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Просветите по округлению
pavelnk © (2015-09-09 18:24:00)Просветите пожалуйста, вообще не понимаю - http://s013.radikal.ru/i322/1509/1b/08352d7dc99e.png
Т.е. Format('%1.2f',[14.14666666])=14.13 Почему? Это не похоже даже на математическое округление.
(2015-10-20 17:59:00) [1]Удалено модератором
SergP (2015-09-10 20:51:00) [2]
>
> Начали пользоваться бухгалтеры, выписали мне пол кило
> звездюлей
в том, чем должны пользоваться бухгалтеры поменьше используй типы с плавающей точкой... для большинства "бухгалтерских чисел" лучше подходит currency.
icWasya (2015-09-10 10:53:00) [3]Вообще то
procedure TForm3.Button1Click(Sender: TObject);
var
ud273m,ud273mit,stud273m:Single;
begin
ud273m:= 14.14666666;
stud273m:=55;
ud273mit:= stud273m*ud273m;
Edit1.Text:= Format('%1.2f',[ud273m])+'*'+Format('%1.2f',[stud273m])+'='+Format('%1.2f',[ud273mit]);
end;
получается
14,15*55,00=778,07
А вот если
procedure TForm3.Button1Click(Sender: TObject);
var
ud273m,ud273mit,stud273m:Single;
begin
ud273m:= 42.4/3;
stud273m:=55;
ud273mit:= stud273m*ud273m;
Edit1.Text:= Format('%1.2f',[ud273m])+'*'+Format('%1.2f',[stud273m])+'='+Format('%1.2f',[ud273mit]);
end;
то 14,13*55,00=777,33
Так что отладчик
Rouse_ (2015-09-10 10:02:00) [4]
> Ну что значит не знают, есть же вполне конкретные правила
> округления, например Математическое округление. Я думал
> что если пишу Format('%1.2f') То второй знак после запятой
> увеличивается на единицу, например.
с какого это перепугу?
> Начали пользоваться бухгалтеры, выписали мне пол кило звездюлей
Ты сам ответил на свой вопрос
pavelnk (2015-09-10 05:56:00) [5]Удалено модератором
Германн (2015-09-10 01:01:00) [6]Удалено модератором
Rouse_ (2015-09-09 20:40:00) [7]
> pavelnk © (09.09.15 20:21) [4]
> > Rouse_ © (09.09.15 19:19) [1]
> Спасибо, посмотрю. Вообще это для меня открытие, что стандартные
> функции врут.
На округлении - конечно врут, они же не знают что именно тебе нужно, поэтому дают нечно средне взвешенное.
pavelnk (2015-09-09 20:21:00) [8]> Rouse_ © (09.09.15 19:19) [1]
Спасибо, посмотрю. Вообще это для меня открытие, что стандартные функции врут.
pavelnk (2015-09-09 20:19:00) [9]RAD 2010. Ничего себе глюк. Я думал это какой то хитрый алгоритм округления.
кгшзх (2015-09-09 20:12:00) [10]потому что глюк в неназванной версии делфи.
а вообще перед точкой в формате стоит количество разрядов всего, а не один
Rouse_ (2015-09-09 19:19:00) [11]http://rouse.drkb.ru/other.php#round