[51单片机] 51单片机double怎么只有8位有效数字?

[复制链接]
2251|7
 楼主| sky657 发表于 2014-3-13 11:44 | 显示全部楼层 |阅读模式
我试了一下51的double和float都只有是八位有效数字,怎么办?

double a;
a=123.456789012345;
仿真结果:a=123.4568

float a;
a=123.456789012345;
仿真结果:a=123.4568
老鱼探戈 发表于 2014-3-13 11:56 | 显示全部楼层
是用 f% 输出仿真的吧
dirtwillfly 发表于 2014-3-13 11:59 | 显示全部楼层
呵呵,注意检查程序,变量在各处是否格式一致
 楼主| sky657 发表于 2014-3-13 12:44 来自手机 | 显示全部楼层
老鱼探戈 发表于 2014-3-13 11:56
是用 f% 输出仿真的吧

用的keil仿真,赋值后直接查看a的值
 楼主| sky657 发表于 2014-3-13 12:47 来自手机 | 显示全部楼层
dirtwillfly 发表于 2014-3-13 11:59
呵呵,注意检查程序,变量在各处是否格式一致

你试过51的double没,是不是不止八位有效数字
ayb_ice 发表于 2014-3-13 13:18 | 显示全部楼层
KEIL的C15 double是4个字节的,还是单精度的
dirtwillfly 发表于 2014-3-13 14:12 | 显示全部楼层
sky657 发表于 2014-3-13 12:47
你试过51的double没,是不是不止八位有效数字

可以用sizeof(double)看一下
coody 发表于 2014-3-13 14:54 | 显示全部楼层
C51的double和float都是4字节的,有效数字为2^23,即7位十进制,不支持双精度的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

158

主题

409

帖子

1

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