2012-10-19 217 views
-3

我最近開始使用C語言。我有一個簡單的問題數學計算C

Unsigned int a; 
float b; 
    a=8000; 
b=(((((float)a)/65535)-1)/0.245); // b= ((a/65535)-1)/0.245; 
printf("value:%f \r\n", b); 

我不知道什麼是上述公式中的問題,但我不能打印「b」值。我會得到「b值爲負值」。如何打印「b值」?

+7

你得到的結果是什麼,你期望得到什麼? – jsalonen

+0

將b改爲double。事情會很好 –

+0

什麼值有'a'? – fasked

回答

0

如果你想只是B的原始值,你就必須做

b = fabsf(b); 
OR 
printf("value:%f \r\n", fabsf(b)); 

由於本B將永遠是陰性的所有值,其中一個< 65535.0

這是假設你有一個數學庫包括在內。

1
8000/65535   = 0,122072175 
0,122072175 - 1  = -0,877927825 
-0,877927825/0,245 = -3,58337888 

如果-3,5833是您所得到的值,那麼您會得到正確的結果。

+0

我無法打印該值。沒有什麼是印刷。 – PRV

+0

@ user1759248你有什麼價值? –

+0

它只是印刷值: – PRV