鑑於這種代碼,我的教授給了我們在考試中,這意味着我們不能修改其他庫的代碼,也沒有使用功能(除stdio.h中):從浮整數
float x;
(suppose x NOT having an integer part)
while (CONDITION){
x = x*10
}
我要找到條件,確保x沒有有效數字在小數點右邊沒有注意浮點數的精度問題(小數點後面我們只有零)。我想這個條件:
while ((fmod((x*10),10))){
X = X*10
}
printf(" %f ",x);
例如:
INPUT x=0.456; --------> OUTPUT: 456.000
INPUT X=0.4567;--------> OUTPUT; 4567.000
It is important to be sure that after the decimal point we don't have any
significant number
但我必須包括文件math.h庫,但我的教授不允許我們在這種特殊情況下使用它(我不是甚至允許使用(很長),因爲我們在課堂上從未見過它)。
那麼沒有這個庫,解決問題的條件是什麼?
這通常是沒有意義的,因爲浮點不能準確地代表了大多數的數字,將有儘可能多的十進制數字,因爲它的總精度。 – 2501
你可以學習['float' type](https://en.wikipedia.org/wiki/IEEE_754-1985t)並對內部比特進行一些測試 – purplepsycho
_我甚至不允許使用(很長),因爲我們從未見過它在課堂上_這是沒有意義的....演員是最簡單的方式來做到這一點,雖然,@ 2501已經寫道,是不準確的。 – LPs