У меня есть программа:C- с плавающей точкой точность
int main()
{
float f = 0.0f;
int i;
for (i = 0 ; i < 10 ; i++)
f = f + 0.1f;
if (f == 1.0f)
printf("f is 1.0 \n");
else
printf("f is NOT 1.0\n");
return 0;
}
Он всегда печатает f is NOT 1.0
. Я понимаю, что это связано с точностью с плавающей точкой в C. Но я не уверен, где именно он перепутался. Может кто-нибудь, пожалуйста, объясните мне, почему он не печатает другую строку?
Вы сами ответили на вопрос. Это связано с точностью. Google даст вам 1000.001 объяснений. – John3136