版本号中 4.9 大于 4.15 的第一想法是如何运转出来的?

2019-08-10 11:05:53 +08:00
 leyle
就像对抗标价 399 这样的错觉,我都是看到 39x 这样的自动升级成 400,然后一下子就看清楚了价格了。

有什么好办法,能够快速的看出来 4.15 大于 4.9
4225 次点击
所在节点    问与答
40 条回复
ShangAliyun
2019-08-10 14:20:15 +08:00
明显是数据库用了小数存储
ziseyinzi
2019-08-10 14:58:52 +08:00
因为点.dot 这个东西在这里不是小数点
laozhoubuluo
2019-08-10 15:14:34 +08:00
4.9=4+90/100
4.15=4+15/100

所以 4.9 是大于 4.15 的。
为了方便比较就不约分了。
laozhoubuluo
2019-08-10 15:19:01 +08:00
这就是有的地方要出 4.9 之后,就不允许再出 4.1x 的原因了。
判定的话就是记得在判断版本号的时候整数位划了,完了直接比后面。
不过不建议非得用这种版本号。很容易混乱。
liuzhaowei55
2019-08-10 15:24:56 +08:00
我觉得这个问题不成立,至少题主说了是版本号的情况下我没觉得 4.9 比 4.15 大。
当然我默认大家都了解语义化版本号: https://semver.org/lang/zh-CN/
iPhoneXI
2019-08-10 16:10:18 +08:00
@liuzhaowei55 了解不代表习惯,我认为它那个前面不能补 0 的规定就很扯淡,所以我自己项目小版本号从来不超过 9
acrisliu
2019-08-10 16:25:35 +08:00
semver
vincel
2019-08-10 16:43:01 +08:00
还是约束不够好 4.15.0 和 4.9.0 就很明显了
reus
2019-08-10 17:09:26 +08:00
4.15 是两个数字,一个是 4,一个是 15,分别比较,不是比较字符串
Huelse
2019-08-10 17:24:20 +08:00
4.15 并不是传统意义的浮点数,.点只是一个分隔符
Meltdown
2019-08-10 18:47:32 +08:00
内核 4.15 大于 4.9 版本啊
Meltdown
2019-08-10 18:48:50 +08:00
看错了,尴尬…
WispZhan
2019-08-10 18:52:34 +08:00
版本号是:major.minor.patch
或者
major.minor

“ major ”, “ minor ”, “ patch ” 都是独立的 Int 类型。

判断版本的时候,请用 "." 去做 split。 然后分别对每个部分进行 Parse Int。

https://semver.org/
deorth
2019-08-10 23:34:55 +08:00
有的项目已经开始用日期代替版本号了
efaun
2019-08-11 00:08:35 +08:00
以日期作为版本号市最科学的
loveuqian
2019-08-11 00:25:49 +08:00
@MarginK
确定啊,亲身经历过啊,除非是又有了修改
gamexg
2019-08-11 01:44:09 +08:00
@deorth #34
@efaun

同时维护多个大版本时还是需要这种版本号,例如 python 2、3 php5、7。
ik
2019-08-11 02:30:05 +08:00
慌了,我也要想半天才能想到哪个大哪个小。
msg7086
2019-08-11 11:07:35 +08:00
4,9 和 4,15 是不是就不会搞混了?
这个点不是小数点,是分隔符。
hstdt
2019-08-11 12:51:49 +08:00
多用这种方式,熟悉了就好了呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/590667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX