我現在問這個問題,當我第一次問這個問題時,我不知道問題是什麼,但我知道我已經試過通讀浮點數學是否被破壞?以及爲什麼浮點數不準確?他們展示了問題的原因,但是我沒有真正看到在我寫的代碼中繞過這個問題,所以現在我詢問是否有任何機構知道我應該如何執行代碼以使程序正常工作。下面的代碼和描述編寫一個程序,確定兩個變量的值等於一個特定的值
這個程序背後的想法是它找到兩個雙打a
和t
的值,如果它們相乘,他們給出一個指定的值。因此,如果指定的值是4的程序必須找到的a
和t
,其中如果它們被乘以它會給4.變量t
是在至10
的範圍爲5的值I寫了下面的代碼
int main(void)
{
double a = 0.01;
double t = 5;
while(1){
if(t * a != 4){
t = t + 0.01;
if(t > 10){
t = 5;
a = a + 0.01;
}
}
else if (t * a == 4){
break;
}
}
printf("%f %f", t, a);
return 0;
}
的代碼似乎沒有工作,如果我我嘗試使用0.01雖然它的工作原理,如果增量值是1。我知道發生這種情況的原因,但我會如何解決這個問題在此遞增值程序代碼還是有其他方法可以編寫代碼?該代碼似乎永遠循環
請注意*「代碼似乎不起作用」*是不足以解決問題的。發生了什麼?你期望會發生什麼? – user694733
什麼不起作用?你能說出你的期望和你的目標嗎? –
't * a'可能永遠不會我_exactly_ 4.如果您已閱讀「是浮點數學中斷」文章,您應該知道這一點。 –