V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  knowckx  ›  全部回复第 5 页 / 共 12 页
回复总数  235
1  2  3  4  5  6  7  8  9  10 ... 12  
2022-02-06 13:09:53 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@v2exblog 嗯……反正别用自带的浮点数,就是个白板
2022-02-06 13:07:29 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@v2exblog 这情况直接用 decimal 包会好一点吧……
2022-02-06 13:04:01 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@ipwx 首先感谢回复,其实我也算科班,考的 408 ,985 硕毕业,计组刷过没有 5 遍也有 3 遍,IEEE 754 的题更是做到烂
但是我不认为您这样上来就用"科班"来打标签并 diss 别人是什么好行为。
计科的学生学完 IEEE 754 上机后就不会踩浮点数==的坑啦?真不见得。

下面回到就事论事,我再次搜集了些资料,补充一下自己的看法
```
浮点数比较的正确方法:

a == b 应该是 abs(a - b) < epsilon # 这个没问题,或者使用 math.isclose
a <= b 应该是 a < b + epsilon # 这个也没问题,我想了下,这个应该算是“最佳实践”,感谢分享
a < b 这个倒可以直接 a < b # 理论上没问题,但是我感觉会很多人会踩坑,下面示例
```

def CompareTwoFloat(v1 :float, v2 :float):
if v1 < v2:
pass # 小于的情况,啪啦啪啦写代码
elif v1 > v2:
pass # 大于的情况,啪啦啪啦写代码
else:
pass # 等于的情况,啪啦啪啦写代码

v1 = 2.2 * 3 # 6.6
v2 = 3.3 * 2 # 6.6
CompareTwoFloat(v1, v2)

一个不小心就会踩坑,实际上走分支 1 ,
实际上必须先判断 isclose 去掉 equal 的情况再比较大于小于,真是坑死了
2022-02-06 11:30:23 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@iBugOne 感谢回复,我跑了下确实有区别,但是你提到的
2.2*3 是一个常量 我没有理解,google 了下也没搜到什么内容,似乎是 go 对常量表达式有优化
2022-02-06 02:21:14 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@lunaticus7 这个方式不错,就是麻烦点,要把所有可能要比较的浮点数都用 decimal 转一遍
2022-02-06 02:19:59 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@yaojin 习惯了熬夜……
2022-02-06 02:19:44 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@secondwtq
我回头看下 谢谢
2022-02-06 02:18:24 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@gstqc 我试了下 go 可以的

func Test_FloatEqual(t *testing.T) {
v1 := 2.2 * 3
v2 := 3.3 * 2
fmt.Println(v1, v2, v1 == v2, v1 <= v2, v1 >= v2)
}

输出结果:
=== RUN Test_FloatEqual
6.6 6.6 true true true
--- PASS: Test_FloatEqual (0.00s)
PASS
2022-02-06 01:51:19 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@chevalier
啊,我理解部分小数无法精确存储
只是其他语言没这么麻烦的
2022-02-06 01:47:46 +08:00
回复了 knowckx 创建的主题 Python 请教一个 Python 浮点数的小问题
@gstqc
谢谢引用,所以
v1>=v2 要改写成
math.isclose(v1, v2) or v1 > v2

这样有点繁琐了吧……
普华永道不是挺好的吗 还可以上上海户口,为什么 4 楼反映这么强烈……?
帮顶一下
2021-12-29 10:52:04 +08:00
回复了 yve11 创建的主题 酷工作 「上海」野村证券, Java /BA/ Python /c#等岗位火热招募中
@yve11 不会 java 只会 go
2021-12-24 10:52:16 +08:00
回复了 yve11 创建的主题 酷工作 「上海」野村证券, Java /BA/ Python /c#等岗位火热招募中
20 天年假!
2021-12-16 11:28:51 +08:00
回复了 cwcc 创建的主题 问与答 身份证生日当天有哪些地方有福利或优惠?
肯德基需要半年内消费过一笔
八合里海记送生日券
上海的耶里夏丽也送券
2021-11-16 00:12:02 +08:00
回复了 pengjianqing 创建的主题 酷工作 [上海]SAP SuccessFactors 招聘 Android/iOS/Ruby 开发
16 天年假吧 不是还有个全公司的心理健康日吗
@zuosiruan 来实地,2500 有很多的
古桐六村 步行上班
2021-05-12 10:56:16 +08:00
回复了 ro47bot 创建的主题 编程 家用台式电脑有推荐嘛?感谢!
AMD 3200g,全套 3000 块搞定。满足你的需要,还省下很多钱~

从你的需要来看,买更贵的机器只会性能溢出,不合算的
2021-03-30 21:25:44 +08:00
回复了 newswipidea 创建的主题 酷工作 [深圳]现在加入 Surreal,你就是前 100 名员工
我觉得还行啊,在深圳 12 天年假挺好的
1  2  3  4  5  6  7  8  9  10 ... 12  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2445 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 15:49 · PVG 23:49 · LAX 08:49 · JFK 11:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.