[STM32F1] 有些除法结果为零

[复制链接]
3152|52
maqianqu 发表于 2025-10-18 15:27 | 显示全部楼层
使用浮点数常量              
sheflynn 发表于 2025-10-18 16:09 | 显示全部楼层
没有硬件浮点运算单元吧              
gejigeji521 发表于 2025-10-22 16:36 | 显示全部楼层
同问:为什么最后一行是正确的?
怎么总是重复啊 发表于 2025-10-29 23:40 | 显示全部楼层
只需将除法运算中的至少一个操作数改为浮点类型,即可触发浮点除法,保留小数部分。
yiy 发表于 2025-11-2 14:43 | 显示全部楼层
那怎么最后一行是正确的
yiy 发表于 2025-11-2 14:47 | 显示全部楼层
关见是整数除法,而不是浮点数除法
lzbf 发表于 2025-11-3 19:17 | 显示全部楼层
写 1/10 时,两个操作数都是整数,因此编译器会执行 整数除法,结果为 0,再隐式转换为 float 类型赋值
updownq 发表于 2025-11-3 20:04 | 显示全部楼层
直接将一个浮点数字面量赋给了 test_float 变量,没有任何除法运算,因此它被正确地存储了。
pl202 发表于 2025-11-3 21:37 | 显示全部楼层
浮点常量的隐式转换              
mollylawrence 发表于 2025-11-5 09:30 | 显示全部楼层
C语言的“整数除法”规则              
belindagraham 发表于 2025-11-5 10:10 | 显示全部楼层
当一个除法运算符 / 的两个操作数都是整数时,编译器会执行整数除法。
jonas222 发表于 2025-11-5 10:52 | 显示全部楼层
使用浮点数后缀              
uptown 发表于 2025-11-5 11:41 | 显示全部楼层
STM32F103与浮点运算              
tifmill 发表于 2025-11-5 12:48 | 显示全部楼层
只要让其中一个操作数变为浮点数,编译器就会执行浮点除法
robertesth 发表于 2025-11-5 13:47 | 显示全部楼层
将其中一个操作数强制转换为 float 类型。
pl202 发表于 2025-11-5 14:50 | 显示全部楼层
test_float = 1.0f / 10;      // 正确结果:0.1
test_float = 1.0f / 1000;     // 正确结果:0.001
test_float = 1.0f / 10000000; // 正确结果:0.0000001
earlmax 发表于 2025-11-5 15:35 | 显示全部楼层
在除法运算中至少将一个操作数转换为浮点类型,强制编译器执行浮点除法
kmzuaz 发表于 2025-11-5 15:56 | 显示全部楼层
1/1000 等表达式也因整数除法导致结果为零。
loutin 发表于 2025-11-5 16:40 | 显示全部楼层
请执行浮点除法,而不是整数除法              
rosemoore 发表于 2025-11-5 17:41 | 显示全部楼层
将结果赋值给float变量,整数除法的计算过程已经完成,结果 0 被转换为float的 0.0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0