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

[复制链接]
892|8
 楼主| dingy 发表于 2018-8-27 19:53 | 显示全部楼层 |阅读模式

实验目的:将整数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 发表于 2018-8-27 19:54 | 显示全部楼层
1.234无法用float准确表示。
renyaq 发表于 2018-8-27 19:55 | 显示全部楼层
你看到的区别只是显示前的格式化过程造成的区别。
kangzj 发表于 2018-8-27 19:57 | 显示全部楼层


精确计算使用整型为妥
zwll 发表于 2018-8-27 20:00 | 显示全部楼层


这个没办法的;
改成DOUBLE也是一样;
 楼主| dingy 发表于 2018-8-27 20:02 | 显示全部楼层
那是不是就没办法解决呢,有人说使用共用体,但是我测试还不行,难道是方法问题吗
pengf 发表于 2018-8-27 20:03 | 显示全部楼层


还不知道32位和64位系统有这么大的影响,哪个应该是比较准确的呢
houcs 发表于 2018-8-27 20:05 | 显示全部楼层
转换为数组中的值,然后加个小数点位,这样处理比较快。
 楼主| dingy 发表于 2018-8-27 20:08 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

745

主题

10920

帖子

6

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