2.1 数值及运算

Groovy支持整数和浮点数。整型值没有分数部分。浮点数是包含十进制小数部分的十进制数。

整数可能是正数、负数或者零。12345、-44和0是常见的整数形式。就像前面说到的那样,它们都是Integer类的实例。

有小数部分的数值是BigDecimal类的实例。浮点数的例子如1.23,-3.1415926。请注意,浮点数必须避免以小数点开始,防止出现混淆,比如必须使用0.25,而不是.25来表示浮点数0.25。同样,它的负数也必须使用-0.25来表示。

Integer:12   Long:25L   Float:12F,23.6F  Double:23D,6.3D  java.math.BigLong:23G  java.math.BigDecimal:12.3,45.6G

a+b  //a.plus(b)  a-b //a.minus(b)  a*b  //a.multiply(b)  a/b //a.div(b) or a.intdiv(b)  a%b  //a.mod(b)

 

Groovy提供大量适用于数值类型的运算符,包括常见的算术运算符、比较运算符、位运算符,以及其他各种类型的运算符。表达式(expression)通常用来描述某些计算行为,由运算符和操作数组成。算术运算符(arithmetic operator)包括加法(+)、减法(-)、乘法(*)和除法(/)。Groovy同样也支持取模运算符,用百分号表示(%);取模运算用来计算两个整数相除的余数。表2-1列举适用于整数的各种算术运算符。

请注意,两个整数的除法运算通常会产生一个浮点数,即使其结果可能是一个整数。举例来说,表达式6/3的结果是浮点数2.0,而不是整数2。

表2-1 整数运算符

表达式

调用方法

结果

5+3

5.plus(3)

8

5-3

5.minus(3)

2

5*3

5.multiply(3)

15

5/3

5.div(3)

1.6666666667

5%3

5.mod(3)

2

上面的这些运算符也适用于两个浮点数的运算,对应结果如表2-2所示。接下来的表会说明两个浮点数的取模操作。

表2-2 浮点数运算符

表达式

调用方法

结果

5.0+3.0

5.0.plus(3.0)

8.0

5.0-3.0

5.0.minus(3.0)

2.0

5.0*3.0

5.0.multiply(3.0)

15.0

5.0/3.0

5.0.div(3.0)

1.6666666667

同上,除了取模运算符之外,Groovy的算术运算也适用于整数和浮点数的组合。表2-3给出一些范例。

表2-3 混合运算

表达式

调用方法

结果

5+3.2

5.plus(3.2)

8.2

5.6 + 3

5.6.plus(3)

8.6

5 - 3.2 

5.minus(3.2)

1.8

5.6 - 3 

5.6.minus(3)

2.6

5 * 3.2

5.multiply(3.2)

16.0

5.6 * 3 

5.6.multiply(3)

16.8

5 / 3.2

5.div(3.2)

1.5625

5.6 / 3 

5.6.div(3)

1.8666666667

如上述几个表所示,不管整数组合,还是整数和浮点数组合,除法运算通常都会得到相同的结果。下面所有组合的结果都是2.6:

13.0/5
13/5.0
13/5

为了获得两个整型值相除的整数部分,必须调用intdiv方法:
13.intdiv(5)

该表达式的结果是整数2。

使用取模运算符(%)可以得到两个整数操作数相除的余数,因此,

13%5   结果值为3
15%5   结果值为0

请注意,对一个浮点数求模,或者对一个含有浮点数参数的整数求模都是非法的。因此,表达式13.0%5.0,13.0%5,13%5.0都会提示mod方法被错误地调用。

intdiv 与 mod方法一样,对象及参数对象都是Integer类型,否则出错


转载于:https://my.oschina.net/u/186769/blog/658011

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值