Форум: "Начинающим";
Текущий архив: 2017.07.16;
Скачать: [xml.tar.bz2];
ВнизПросветите по округлению Найти похожие ветки
← →
pavelnk © (2015-09-09 18:24) [0]Просветите пожалуйста, вообще не понимаю - http://s013.radikal.ru/i322/1509/1b/08352d7dc99e.png
Т.е. Format("%1.2f",[14.14666666])=14.13 Почему? Это не похоже даже на математическое округление.
← →
Rouse_ © (2015-09-09 19:19) [1]http://rouse.drkb.ru/other.php#round
← →
кгшзх © (2015-09-09 20:12) [2]потому что глюк в неназванной версии делфи.
а вообще перед точкой в формате стоит количество разрядов всего, а не один
← →
pavelnk © (2015-09-09 20:19) [3]RAD 2010. Ничего себе глюк. Я думал это какой то хитрый алгоритм округления.
← →
pavelnk © (2015-09-09 20:21) [4]> Rouse_ © (09.09.15 19:19) [1]
Спасибо, посмотрю. Вообще это для меня открытие, что стандартные функции врут.
← →
Rouse_ © (2015-09-09 20:40) [5]
> pavelnk © (09.09.15 20:21) [4]
> > Rouse_ © (09.09.15 19:19) [1]
> Спасибо, посмотрю. Вообще это для меня открытие, что стандартные
> функции врут.
На округлении - конечно врут, они же не знают что именно тебе нужно, поэтому дают нечно средне взвешенное.
← →
Германн © (2015-09-10 01:01) [6]Удалено модератором
← →
pavelnk © (2015-09-10 05:56) [7]Удалено модератором
← →
Rouse_ © (2015-09-10 10:02) [8]
> Ну что значит не знают, есть же вполне конкретные правила
> округления, например Математическое округление. Я думал
> что если пишу Format("%1.2f") То второй знак после запятой
> увеличивается на единицу, например.
с какого это перепугу?
> Начали пользоваться бухгалтеры, выписали мне пол кило звездюлей
Ты сам ответил на свой вопрос
← →
icWasya © (2015-09-10 10:53) [9]Вообще то
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
Так что отладчик
← →
SergP © (2015-09-10 20:51) [10]
>
> Начали пользоваться бухгалтеры, выписали мне пол кило
> звездюлей
в том, чем должны пользоваться бухгалтеры поменьше используй типы с плавающей точкой... для большинства "бухгалтерских чисел" лучше подходит currency.
← →
имя (2015-10-20 17:59) [11]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.07.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c