天猫超市神奇的 sentinel value

2017-07-22 14:39:00 +08:00
 geelaw

今天买日化用品的时候猛然看到这么一个界面

这个数字很有趣,作为 ex-OIer 马上可以意识到:这个数字的开头很像 int64 上确界的开头。但是仔细数一下,只有 16 位,位数不够。但是连想到千克和克的换算关系,很容易猜测原因。

为了检查,可以算一下。int64 的上确界是 ([uint64]1 -shl 63) - 1 也就是 9223372036854775808。

于是可以猜测内部系统存储的是一个 int64,含义为 包邮重量 / g

如果假设包裹高 10m 且所有的物质的密度都是 10ρ水,那么包邮最大重量的包括平铺开来占据的面积至少有 92234 平方千米,也就是中国国土面积的大约 100 倍(仅数量级)。这个尺寸是骇人的,从用户体验角度考虑应该改换描述,不要用 sentinel value 的实际数值,而是用“任意重量包邮”这种说法比较好。

2292 次点击
所在节点    分享发现
3 条回复
qq292382270
2017-07-22 15:49:01 +08:00
说的很透彻,我一看就...看不懂..
Thoxvi
2017-07-22 16:11:24 +08:00
2333 可能忘记优化了
wdlth
2017-07-22 18:28:20 +08:00
估计在马老板的故乡〇〇〇星是一个正常的数字……

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

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

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

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

© 2021 V2EX