楼主: phner
818 2

[技术讨论与投票] 有大佬知道为什么0.06*45^=2.7吗 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

本科生

88%

还不是VIP/贵宾

-

威望
0
论坛币
11 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
146 点
帖子
8
精华
0
在线时间
233 小时
注册时间
2018-8-9
最后登录
2024-11-8

楼主
phner 发表于 2021-4-21 17:48:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
今天遇到了个问题,在中文和unicode里面计算0.06*45都不等于2.7,但是换成6*0.45就等于2.7,或者round 0.1也等于2.7,有大佬知道为什么吗 7be327e739f9a84e827d3c51b515988.png 95c5756cd000c0d32ffaee1a516f22f.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:unicode ROUND code ODE NIC

沙发
xiaobo_mx 发表于 2021-4-22 09:51:54
这个涉及到浮点数在计算机内的存储问题,底层的数字都是二进制的,浮点数大多数都是只能近似表达的。0.06表达精度相差略大,所以计算出来的结果并不是2.7。虽然当你不使用if的时候看不出来,但你用a去判断是否等于时是使用的实际计算的结果值。而不是我们看到的使用了format best12.后的a的值。

藤椅
phner 发表于 2021-4-22 11:02:19
xiaobo_mx 发表于 2021-4-22 09:51
这个涉及到浮点数在计算机内的存储问题,底层的数字都是二进制的,浮点数大多数都是只能近似表达的。0.06表 ...
谢谢,查了下资料明白了

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 23:47