无法打印正确的浮点值

j.a*_*aug 1 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);
Run Code Online (Sandbox Code Playgroud)

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

所以我通过打印测试

printf("The float point value is %f", 1.39824);
Run Code Online (Sandbox Code Playgroud)

很好地打印出以下值.

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

double f = 10^-6;
printf("The flloat point value is %f", f);
Run Code Online (Sandbox Code Playgroud)

它打印的值是-14401872.000000

如何解决浮点值问题?

Bat*_*eba 5

你不是要10e-12比较10^-12

10e-12是一个浮点 double 常数,虽然看注意,1e-1210提升到-12幂.您^滥用XOR操作符.