无法打印正确的浮点值

时间:2017-11-30 08:50:51

标签: c floating-point arm

我的ZC706主板有双臂皮质32bit。我试图在它上面运行一个算法,作为代码的一部分,它有浮点值。

uint32_t int Ts = 69912;
float Ts_pico;
Ts_pico = 20*(10^-12)*Ts;
printf("Time stamp in picoseconds is %f", Ts_pico);

它打印的值为4272595456.000000而不是1.39824 *(10 ^ -6)

所以我通过打印测试

printf("The float point value is %f", 1.39824);

很好地打印出以下值。

接下来,当我通过打印进行测试时

double f = 10^-6;
printf("The flloat point value is %f", f);

它打印的值是-14401872.000000

如何解决浮点值问题?

1 个答案:

答案 0 :(得分:5)

您不想10e-12而不是10^-12吗?

10e-12是一个浮点 double 常量,但请注意1e-1210被提升到-12 th 的力量。您的^滥用了XOR操作符。