Я использую FloatToStr(), но у него есть ошибка! Я покажу вам свой саркод.C++ builder Ошибка FloatToStr()
void __fastcall TForm1::FormCreate(TObject *Sender)
{
float i=3.14;
Double j=3.14;
Double k=0;
Double m,n;
Edit1->Text=FloatToStr(i); // It's show 3.14000010490417
Edit2->Text=FloatToStr(j); // It's show 3.14
Edit3->Text=FloatToStr(314/100); // It's show 3
k=314/100;
Edit4->Text=FloatToStr(k); // It's show 3
m=314;
n=100;
Edit5->Text=FloatToStr(m/n); // It's show 3.14
}
Я спрашиваю? Зачем ? Все не показывают 3.14 ???? !!! или Это ошибка в FloatToStr()!
- Редактировать1-> Текст = FloatToStr (i); // Это шоу 3.14000010490417
- Редактировать3-> Текст = FloatToStr (314/100); // Это шоу 3
- Edit4-> Text = FloatToStr (k); // Это шоу 3
Благодарим за ответ.
1) float не может точно представлять 3.14, поэтому у вас есть ошибка, которая показывает, когда он получает повышение до double при передаче в FloatToStr(). 2 и 3) вы выполняете целочисленное деление (314/100), поэтому результат усекается. Попробуйте (314.0/100) использовать деление с плавающей запятой. –