栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

比较两个通用数字的值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

比较两个通用数字的值

一个有效的(但脆弱的)解决方案是这样的:

class NumberComparator implements Comparator<Number> {    public int compare(Number a, Number b){        return new BigDecimal(a.toString()).compareTo(new BigDecimal(b.toString()));    }}

不过,它仍然不是很好,因为它依靠

toString
返回一个可解析的值
BigDecimal
(标准Java
Number
类可以执行此操作,但是
Number
合同不需要)。

七年后编辑: 正如评论中指出的那样

toString
,您需要考虑以下三种(至少?)特殊情况:

  • Infinity
    ,它等于所有事物,除了等于它的自身之外
  • -Infinity
    ,它等于所有事物,除了等于它的自身
  • NaN
    ,比较起来比较
    NaN``false
    费力/不可能,因为所有与之比较的结果都会产生,包括检查自身是否相等。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495581.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号