2012-10-19 225 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