Форум: "Начинающим";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];
ВнизКак корректно узнать, целое число или нет? Найти похожие ветки
← →
pavor (2011-05-13 09:34) [0]Добрый день,
требуется решить задачу:
- если число содержит дробную часть - отображать его без изменений;
- если число не содержит дробной части - добавлять в конец ",0";
То есть, если
на входе 2,3 -> отображаем 2,3, если
на входе 2 -> отображаем 2,0
Использую следующий код:procedure TForm1.Button1Click(Sender: TObject);
var test: real;
dim:ShortString;
const eps=0.0001;
begin
memo1.Lines.Clear;
test:=2.3;
memo1.Lines.Add("test="+floattostr(test));
test:=test-0.3;
memo1.Lines.Add("test-0.3="+floattostr(test));
if ((test-trunc(test))<eps)
then dim:=FloatToStr(test)+",0"
else dim:=FloatToStr(test);
memo1.Lines.Add("trunc(test)="+IntToStr(trunc(test)));
memo1.Lines.Add("dim="+dim);
end;
Вот что он выводит:
test=2,3
test-0.3=2
trunc(test)=1
dim=2
Вместо функцииtrunc
пробовалfloor
,int
- результат тот же.
Понятно, что проблема связана с представлением вещественных чисел, но как ее решить - пока неясно.
← →
Anatoly Podgoretsky © (2011-05-13 09:37) [1]
> - если число содержит дробную часть - отображать его без
> изменений;
> - если число не содержит дробной части - добавлять в конец
> ",0";
Неправильное, грубое решение, просто освой Format. FormatFloat
← →
pavor (2011-05-13 09:44) [2]Большое спасибо, работает. )
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c