编程新手问题. 关于浮点运算.

[复制链接]
查看11 | 回复3 | 2013-8-13 15:50:06 | 显示全部楼层 |阅读模式
你说的这个问题要从浮点数的结构说起。先说说e,这个是指数的意思,英语为exponent浮点数的取值范围是一个有限的数集合,而且相邻两个数之间的值是一个固定值,对于32位的浮点数,这个数是 2^(-54),约为 5.551115123125783e-17,你可以自己查看一下IEEE754,为了让两个浮点数相等,则他们之间的距离小于这个值即可。也就是你的逻辑运算表达式了...
回复

使用道具 举报

千问 | 2013-8-13 15:50:06 | 显示全部楼层
计算机里面的数都是二进制的,具体原理你查一下二进制的小数表示就行了。一般判断两个浮点数相等不用==,因为就算和实际上是相等的,但是因为运算方法不同会导致结果有一点进位的差别。一般用abs(a-b)<一个较小的数来判断浮点数相等abs是绝对值的意思,展开就是你上面的式子。就是两个数差的非常小,就认为相等...
回复

使用道具 举报

千问 | 2013-8-13 15:50:06 | 显示全部楼层
科学计数法。1e-15 就是 1 乘以 10 的负15次方。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行