作者ogamenewbie (._.)
站内java
标题Re: [J2SE] 进行浮点数运算时如何四舍五入至小数第 …
时间Wed Oct 10 14:02:00 2007
※ 引述《cphunter (写程式的克理斯)》之铭言:
: ※ 引述《ogamenewbie (._.)》之铭言:
: : 说实在的, 并不是喜欢拉推文出来打, 而是有些人就是喜欢躲进推文不知道在干麻.
: : 原po打从一开始就不是使用 BigDecimal, 而是浮点数.
: 其实我看不出来耶 , 为什麽您说:不是使用 BigDecimal 那这个有什麽翻译呢?
: 请版主大大订一下 BigDecimal 的中文使用译名好了!!!
讲的一副我大到有资格去定译名似地.
: : 所以我就压根不提 BigDecimal. 因为那很复杂.
: hmmm... 但还是有提了,而且列出不少 API. 如果不想提, 应该直接指名不好用!
: 列那麽多 API 看了一下, 虽然说是在复习 Java API<--- 我很久没在用了!
: (我工作常用的都背起来了.) 但发觉看文章还真是蛮累的 = =!
我没有说不好用, 我只有说复杂.
如果你认为使用 BigDecimal 跟使用 double 的难度相略,
那是你的问题, 不关我的事情.
: : 原po的回文也有说看不懂a大的说明. (当然也有说看不懂我的说明)
: : 但至少他看了我的说明还知道去挖个叫 DecimalFormat 的东西出来用.
: : (我一开始还只有想到 NumberFormat 咧)
: 然後呢? 有解决真正的问题吗? 没有 = =
那你回了什麽?
: : 真的觉得 DecimalFormat 不好用, 自己继承 NumberFormat 写一个咩.
: 还叫人家自己写一个 >_< , 看来原 po 也对这不是很熟嘛.
: 数值处理这块, 不知道 O 大玩了多久了, 如果真要处理 complex 小数
: 您有相关的经验? 写这样的东西, 需要多久 ? 但如果是采用较易的方式
: 了解更多的需求 . 您不觉得会更好吗?
今天 a 问说 NumberFormat 的方式有什麽处理法 ->
DecimalFormat 可以四舍五入 -> 四舍五入有 Rounding to Even 的问题 ->
6.0 可以去选 Rounding to Even, 用 5.0 以前的不合需求你就自己去写一个.
API 本来就是以符合大多数人需求为主.
从 5.0 跟 6.0 之间的差异就可以看得出来 DecimalFormat 能选 Rounding
是多数人的需求.
这是我说的第三次了, 我看原po的问题就是最终浮点数结果要去做一个修饰呈现,
所以我想到的就是可以去做修饰呈现的 NumberFormat, 以上.
: : 前面还有更高段的用 整数运算 %取位数 等等的.
: : 真的要学就去学那种, 学像我当 API index 有屁用.
: 我是 frequence 回下来 , 到这我觉得自己像白痴.... 时间可贵!!!
原来我打字不用时间的.
: : 但是老实讲, Rounding to Even 对我来说本来就不是个问题,
: : 我 double 用一用发现不对, 後来就全部改成用 BigDecimal.
: : 自此我 Java 几乎没用过 double..
: 到了这,我发现上面的争论. 就是可以建议用 BigDeicmal 嘛 >_<
: 我~~~~ 无力ing!! 我真的很认真念了!! 突然看到这,火都上来了
我跟 BigDecimal 唯一的争论就是, 你要用就给我从头用到尾.
不要跟 double 转来转去.
: : 这让我想到对岸有人说 Java 程式设计师有个里程碑.
: : 这个里程碑叫做"能否自行重新实作 String 类"
: : 类似像这样的文章吧?
: : 请把目标往这边摆.
: 对岸的哪位高手说的? id 给我,我看认不认识来的 = =
: 还是对岸的邓小平兄说的? 那就是王道啦...
: Java 用到怎样才算高? 我觉得做出自己的领域, 拥有 Niche 就算高!
你自己去用 google 查吧, 如果你要看 id 认高手,
也请你现在就把我的 id 忘乾净.
: : API 读再熟, 你顶多就是很厉害的乐高组合工罢了.
: : 能写出你要的 API, 那才是个乐高设计匠.
: 看要走的方向是哪边啦, 组合工也好、设计匠也好. 您没听说过适才而用吗?
: 两个会写 Java 的工程师,却因为自己的个性、特性而有了不同的适用!
: 组合工匠有工匠的强处,设计匠有设计匠的强处.
: 但要把结果可以用最符合需求的方式,提供出来! Computer Language , 用来干嘛?
: 它不是文言文啦! 是用电脑解决人类需求的一个工具! 老兄,没那麽困难,好吗?
人之所以积极向上追求进步就是 (以下废言大量省略)
反正有人如果看了那个会知道 API 不合需求就能写一个出来, 那是好事.
有人看了体认到天资不足能力差异, 跟原厂回报, 乖乖等新的 API, 也没什麽不好.
看来我替别人操太多心了, 那我少说两句,
以後都用 Step by Step 算了.
: : 请不要写一个不会动或不能正常运行的 String 类,
: : 然後说你跨过那个里程碑了.
: 写出来, 跨过那个里程碑, 代表了什麽? 还是千万年薪的保证?
: 如果这样, 来开个补习班专教:如何写出一个可以动、可以正常运行的 String 类!!
: 说真的, 我现在还是不知道如果写出一个 String 类有啥咪用途
: 虽然小弟在数年前就跨过了用写程式年收入千万级的极限, 在许多国家也都混了一阵子!
: 但, 没听说过一定要改写 String 类啥米的才能成为 Java 的乐高设计师 >_<
: 我承认我在改写 Lucene 底层 和 一堆有的没的 Communication I/O(NIO/Memcache)
: RS232 in Java 、IBM 3270 in Java 这些有的没的怪东西!!
: 在程度上,我是非常 不认同乐高组合工和设师这个说法啦!
: A 大也没说他要当设计师呀,干嘛就鞭他 = =!!!
今天我回的几个点, 首先是关於 BigDecimal 跟 Double 之间的纠葛.
最後上面回的那一篇, 是a大点名我, 我才回.
我有点名你嘛? (笑)
那是不是我也可以说我想混吃等死, 干麻来鞭我 = =!!! (笑)
: 我很不喜欢在板上发文, 因为这很花时间. 刚打完小白球, 在舒松自己的筋骨就上来回
: 但我真的不认为, 要把人家的推文拿出来鞭啦!! 好吗....
你叫他不要点名我阿.
我为人一向认真, 你点我我就会跳出来苦口婆心打字.
当然我也有白目的时候, 那种时候就换你们鞭我咩.
合情合理吧?
: 讨论技术,各有看法! 各自尊重, 往自己更有 Niche 的地方去!
: 思考自己在未来要走的路,像 A 大在 BerkeleyDB 上的看法不错呀!怎麽 O 大鞭不动?
我还没有作大到需要考虑效能或是 DB 特性的地步,
而且 BerkeleyDB 我根本没灌过.
我说过了, 如果我要回答问题, 我起码要灌起来玩玩我才会知道.
: 我觉得 A 大是 Java 的新手, 却在上面讨论技术,我不觉得他的说法哪里不好
: 组合匠很简单吗? 设计师一定比组合匠重要吗?
: 还是 O 版大觉得, 心中很闷?! 可以处理的嘛, 砍文不就好了!
ㄎㄅ, 砍文是因为有人做了违反版规的事情, 版主为了维护版规,
才会履行版主的义务将文章自版面上砍除.
你还以为这是版主的权利要砍就砍要杀就杀欧.
: 述我无理了, 我只是一个写 Java 的老人... 十年岁月和专案让我也老了!
: 数值类的东西也太麻烦了.... 我只强 I/O , 用 int 就可以考倒我了...哈!
不会不会, 有讨论就是好事.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.232.200.248