大神们进来下,浮点数用printf打印出错了
double f=123456.8991;printf("double=%f \r",f); 显示的是:double=123456.900000
printf("double=%.4f \r",f); 显示的是:double=123456.9000
只能输出1位小数,后面给我补零了,大神们,你们是怎处理的呢,我用的的STC8H1K08T
本帖最后由 tzz1983 于 2024-4-22 08:37 编辑
C51不支持double类型, 仅支持flaot类型。
实际上是把f转换为flaot类型后再显示的,
flaot的十进制有效位只有6到7位, 所以后面给你补0了 原因是楼上版主说的,,解决方法的话可以按照自己的精度扩大对应的位数然后整体按整形计算 最后结果按整形发送。注意的是别超了整形的位数。
又学到新知识了 51竟然不支持double啊 涨知识了,51不支持double类型 soma 发表于 2024-4-22 11:42
51竟然不支持double啊
51 支持double, 但这个 double 也是单精度的 {:lol:} {:4_174:}{:4_174:} 非常感谢,学习了
页:
[1]