xiaokongwu 最近的时间轴更新
xiaokongwu

xiaokongwu

V2EX 第 424064 号会员,加入于 2019-06-24 10:04:07 +08:00
xiaokongwu 最近回复了
淘宝上找装宽带的,你留个地址客服会帮你查
@touchwithe 哈哈哈,终于来了个明白的大哥,没想到有这么多人回复,有怼我垃圾没基础的,也有很多热心解答的。我这问题的关键不在那些无限小数,而是一些有限位的小数,但二进制不能精确表示的那些,为啥不弄一种类似 BigDecimal 的基础类型来实现(看完了评论区,大概了解了,除了存储还有运行效率,CPU 支持浮点数的运算,如果弄复杂类型就效率低了)。
再次感谢各位大佬的回复,第一次在 V2EX 发帖有这么多人解答,太意外了
@lonewolfakela 感谢大佬回复,解释的真好。

“这样复杂的一个东西很显然是不适合作为一个“基础类型”存在的。这也是为啥现有大部分对这种 decimal 类型的实现都是用额外对象 /第三方库之类的东西。”

这段精辟,基础类型就干基础类型的事,复杂的工作交给上层解决
感谢各位的回复。总结一下:float/double 这种基本的浮点数类型,还是有存在的意义的。对于只读不写的场景,基本的浮点类型完全可以;不过我还是认为编程语言可以提供一种基础的“decimal”类型来解决十进制计算的精度问题,而不是各种奇淫巧技 /额外对象 /三方数字库之类的东西
@chenluo0429 也能理解这种基础的 float/double 存在的意义,不过提供一种基础的 Decimal 类型不是更好嘛,总比上层实现的占用低
@geelaw 感谢解释。不过 java 中的 BigDecimal 貌似是把小数部分作为整数存储的,这也可以叫浮点数吗……float/double 这种基础类型虽然可以近似的表示小数,但是一计算就会出现精度问题,我现在理解这种基础类型有存在的价值(毕竟不是所有场景都需要运算),但是如果直接提供一种基础的 BigDecimal 类型,那不是更好吗
@marcong95 嗯能理解,不过那 float/double 这种浮点数字类型存在的意义在哪呢,除了占用低,完全不能拿来做运算
@lithiumii 比如 BigDecimal ( java ),这个毕竟是对象,实际的占用比基础类型大得多,如果有基础的精确类型就可以省去这个额外开销了
@rnicrosoft 我描述的不是很清楚……针对那种非无限小数,可以精确表示吧,不是圆周率这种
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2002 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 05:26 · PVG 13:26 · LAX 22:26 · JFK 01:26
♥ Do have faith in what you're doing.