开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

12
返回列表 发新帖
楼主: qck易语言
收起左侧

[易语言] 到整数,精度丢失?

[复制链接]

结帖率:100% (56/56)
发表于 2024-6-17 15:52:00 | 显示全部楼层   江西省南昌市
qck易语言 发表于 2024-6-17 14:42
显示啥到没事,关键他8074变8073去了

那可能我看错了。
回复

使用道具 举报

结帖率:77% (17/22)

签到天数: 2 天

发表于 2024-6-17 19:45:27 | 显示全部楼层   浙江省嘉兴市
qck易语言 发表于 2024-6-17 14:44
双精度小数的8074.000,到整数变成8073这没什么道理吧,它存成8073.99999,到整数也应该是8074啊 ...

你把  8074.000  设置成双精度小数型后再看吧
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 12 天

发表于 2024-6-18 11:36:13 | 显示全部楼层   贵州省毕节市
X87兼容2001年以前的老机器 略慢 SSE2只支持2001年以后的CPU速度稍微快那么一丢丢 两个都比易语言自带的 到整数( )快一倍
  
子程序名返回值类型公开备 注
转整数整数型 X87
参数名类 型参考可空数组备 注
双精度双精度小数型
置入代码 ({ 221, 69, 8, 219, 93, 8, 139, 69, 8, 201, 194, 8, 0 })
' fld qword ptr ss:[ebp+0x08]
' fistp dword ptr ss:[ebp+0x08]
' mov eax, dword ptr ss:[ebp+0x08]
' leave
' ret 0x08
返回 (0)
子程序名返回值类型公开备 注
转整数整数型 SSE2
参数名类 型参考可空数组备 注
双精度双精度小数型
置入代码 ({ 242, 15, 16, 69, 8, 242, 15, 44, 192, 201, 194, 8, 0 })
' movsd xmm0, qword ptr ss:[ebp+0x08]
' cvttsd2si eax, xmm0
' leave
' ret 0x08
返回 (0)

回复

使用道具 举报

结帖率:70% (14/20)

签到天数: 26 天

 楼主| 发表于 2024-6-19 00:27:57 | 显示全部楼层   河南省郑州市
笨来无一悟 发表于 2024-6-18 11:36
X87兼容2001年以前的老机器 略慢 SSE2只支持2001年以后的CPU速度稍微快那么一丢丢 两个都比易语言自带的 到 ...

实测x87这个转出来是正确值,不懂为什么
回复

使用道具 举报

结帖率:70% (14/20)

签到天数: 26 天

 楼主| 发表于 2024-6-19 00:28:53 | 显示全部楼层   河南省郑州市
走一回 发表于 2024-6-17 19:45
你把  8074.000  设置成双精度小数型后再看吧

已经是了啊
回复

使用道具 举报

结帖率:70% (14/20)

签到天数: 26 天

 楼主| 发表于 2024-7-3 13:36:10 | 显示全部楼层   河南省郑州市
福仔 发表于 2024-6-17 00:44
小数 1.0  实际上是 0.9999999.... 无限接近1.0
所以精度问题需要特别注意, 如果需要精度处理就用双精度小 ...

如果要储存金额数据,应该用精度小数吧,比如DECIMAL 类型 ,易语言小数型和双精度小数型都是浮点型,没有DECIMAL,想转成整数储存提高精度呢,就要*100来储存,可是*100的时候,直接丢失精度了

点评

存金额肯定用整数啊, 用8字节整数, 或者有更高就用更高   广西壮族自治区崇左市  发表于 2024-7-3 15:12
回复

使用道具 举报

结帖率:70% (14/20)

签到天数: 26 天

 楼主| 发表于 2024-7-4 06:53:41 | 显示全部楼层   河南省郑州市
福仔 发表于 2024-6-17 00:44
小数 1.0  实际上是 0.9999999.... 无限接近1.0
所以精度问题需要特别注意, 如果需要精度处理就用双精度小 ...

可是进货价是其他系统上传的decimal,要转整数,是不是就要*100,再到整数?80.74*100,再到整数,变成了8073,掉了一分钱。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表