我正在做一个小项目,需要使用一个变量来保存PWM频率,STM32F103中有些除法结果为零,而实际结果应为浮点数而非零?为了计算周期,写了一个除法运算:1/test_float,结果应该是浮点数周期……但结果却是零。
我使用的是Blue Pill开发板(STM32F103)和STM32Cube IDE。
我运行了以下简单示例来展示这个问题:
float test_float = 0;
test_float = 1/10; // ====> test_float=0
test_float = 1/1000; // ====> test_float=0
test_float = 1/10000000; // ====> test_float=0
test_float = 0.0000001; // ====> test_float= 9.9999999999999995e-008 (正确)
为什么前四行结果为零?最后一行(test_float = 0.0000001;)得到了正确值(100 ns)
|
|