[应用相关] 64位XP下得到1.234

[复制链接]
 楼主| dingy 发表于 2020-4-11 17:16 | 显示全部楼层 |阅读模式

实验目的:将整数1234,转换为1.234
使用环境:KEIL4.7
试验函数:采用如下函数
float READ_EEPROM_float11()
{
        int tmp;
        float dat;

        tmp = 1234;
        dat=(float)((float)tmp/1000);
        return (float)dat;
}
试验结果:
1、在32位XP系统下,得出dat=1.234
2、在64位WIN8下得出dat=1.2399997


请问,如何在64位XP下得到1.234
pengf 发表于 2020-4-11 17:19 | 显示全部楼层
1.234无法用float准确表示。
renyaq 发表于 2020-4-11 17:27 | 显示全部楼层
你看到的区别只是显示前的格式化过程造成的区别。
kangzj 发表于 2020-4-11 17:30 | 显示全部楼层
精确计算使用整型为妥
zwll 发表于 2020-4-11 17:33 | 显示全部楼层

这个没办法的;
改成DOUBLE也是一样;
 楼主| dingy 发表于 2020-4-11 17:36 | 显示全部楼层
那是不是就没办法解决呢,有人说使用共用体,但是我测试还不行,难道是方法问题吗
pengf 发表于 2020-4-11 17:38 | 显示全部楼层
还不知道32位和64位系统有这么大的影响,哪个应该是比较准确的呢
houcs 发表于 2020-4-11 17:45 | 显示全部楼层
转换为数组中的值,然后加个小数点位,这样处理比较快。
 楼主| dingy 发表于 2020-4-11 17:47 | 显示全部楼层


嗯,我再好好缕一缕吧,有了好消息及时通知大家
你瞅啥 发表于 2020-4-12 18:10 | 显示全部楼层
什么编译器?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

745

主题

10920

帖子

6

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