Java compareTo() 用法

例如:

public static void main(String[] args) {

    BigDecimal bnum1, bnum2;

bnum1 = new BigDecimal("10");

    bnum2 = new BigDecimal("20");

int res = bnum1.compareTo(bnum2);

String str1 = "两个数相等";

    String str2 = "第一个数更大";

    String str3 = "第二个数更大";

if( res == 0 )

        System.out.println( str1 );

    else if( res == 1 )

        System.out.println( str2 );

    else if( res == -1 )

        System.out.println( str3 );

    }

}

运行代码,得到以下结果:

第二个数更大

为什么比较返回值是0,-1和1呢? 我们去看看源代码!

根据源码中的三元运算符

可以发现:

情况1. 如果xs等于ys,则返回0。

情况2. 如果xs不等于ys,则会执行另外一个三元运算符((xs > ys) ? 1 : -1)

这时候就会比较 xs 和 ys:

xs > ys 返回 1,

xs < ys 返回 -1。

因此得到结论!

两个数比较的返回值

  • 如果第一个参数与第二个参数相等返回0。

  • 如果第一个参数小于第二个参数返回 -1。

  • 如果第一个参数大于第二个参数返回 1。

解读Java中BigDecimal.ZERO.compareTo()的返回值含义的更多相关文章

  1. java中Math.abs(-2147483648)的返回值应该是什么?

    我觉得这是一个非常有意思的问题,Math.abs(-2147483648)的返回值应该是什么? java计算结果 为什么没有得到正数结果呢? 首先我们先看下java区分整数正负的原理.在二进制的情况下 ...

  2. 在C#、Java中,为什么不能用[返回值]区别重载方法?

    为什么方法签名只包含方法名和参数列表,而没有把返回值考虑进去? 如下有两个方法: void Func(){} string Func() { return string.Empty; } 编辑器可以根 ...

  3. Java中的equals,==,compareTo和compare的比较

    Java中的equals(),==,compareTo()和compare() 首先只有==可以用作两个基本类型数据之间的比较,当然是值比较.当用作两个对象比较时,比较的是对象引用,而不是值比较. 其 ...

  4. Java中BigDecimal的8种舍入模式是怎样的

    Java中BigDecimal的8种舍入模式是怎样的?下面长沙欧柏泰克软件学院和大家一起来学习下吧:  java.math.BigDecimal 不可变的.任意精度的有符号十进制数.BigDecima ...

  5. 关于java中BigDecimal的简介

    关于java中BigDecimal的简介 1.BigDecimal属于大数据,精度极高,不属于基本数据类型,属于java对象(引用数据类型), 这是sun提供的一个类,专门用在财务软件中. 2.注意: ...

  6. java使用Filter过滤器对Response返回值进行修改

    转:java使用Filter过滤器对Response返回值进行修改 练习时只做了对request 的处理,这里记录一下,filter 对 response的处理. 原文地址:java使用Filter过 ...

  7. 转:java使用Filter过滤器对Response返回值进行修改

    练习时只做了对request 的处理,这里记录一下,filter 对 response的处理. 原文地址:java使用Filter过滤器对Response返回值进行修改 有时候在开发过程中会有这样一个 ...

  8. 066 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 带参有返回值方法

    066 01 Android 零基础入门 01 Java基础语法 08 Java方法 04 带参有返回值方法 本文知识点:带参有返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...

  9. 065 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 带参无返回值方法

    065 01 Android 零基础入门 01 Java基础语法 08 Java方法 03 带参无返回值方法 本文知识点:带参无返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...

随机推荐

  1. Spark scheduler

    触发Spark scheduler的入口是调用者代码中的action操作,如groupByKey,first,take,foreach等操作.这些action操作最终会调用SparkContext.r ...

  2. 2019.05.08 《Linux驱动开发入门与实战》

    第六章:字符设备 申请设备号---注册设备 1.字符设备的框架: 2.结构体,struct cdev: 3.字符设备的组成: 4.例子: 5.申请和释放设备号: 设备号和设备节点是什么关系.? 设备驱 ...

  3. 查看JSP和Servlet版本+

    如何查看JSP和Servlet版本 找到jsp-api.jar和servlet-api.jar ,分别打开META-INF下的MAINMEFT.MF文件,查看对应的版本. 例: JSP版本: Mani ...

  4. mapper提示Could not autowire. No beans of … type found?

    工具及背景: IntelliJ IDEA 2016.1.3 Ultimate.spring boot, maven项目,利用mybatis 注解的方式查询mysql 在自动生成工具生成代码后,serv ...

  5. swift 一疑问:reduce

    var products = [   Product(name: "Kayak", description: "A boat for one person",p ...

  6. VMware虚拟机XP系统安装

    转载:http://jingyan.baidu.com/article/54b6b9c00e2f452d593b4762.html

  7. RecipientsEditor-信息收件人输入框

    首先说一下信息收件人这个类的继承关系 RecipientsEditor->EncapsulatedMTKRecipientEditTextView(这两个类都在mms目录下) ->MTKR ...

  8. 2.技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化

    转自:https://www.cnblogs.com/chenying99/archive/2013/05/23/3094128.html 技巧: 用 JAXM 发送和接收 SOAP 消息—Java ...

  9. the way to go

    推荐两本书 关于go语言的 The way to go Go语言编程高清完整版电子书.pdf

  10. Linux 服务器初始配置步骤

    1.IP配置 vim /etc/sysconfig/network-scripts/ifcfg- BOOTPROTO=dhcp 改成 static ONBOOT=no 改成 yes 添加 IPADDR ...