5、Groovy Math<o:p></o:p>
l Groovy支持访问所有的Java Math类和操作<o:p></o:p>
l 为了使math操作在脚本编写时尽可能直观,Groovy math模型支持文字化math操作<o:p></o:p>
l 缺省计算使用的是精确的小数(BigDecimal),如:<o:p></o:p>
返回的是true,而不是false(不象在Java中使用float或double)<o:p></o:p>
(1)数字的文字表示<o:p></o:p>
l Groovy的小数文字表示是java.math.BigDecimal的实例,而不是浮点类型(Float或Double)<o:p></o:p>
l Float和Double可以使用后面讲的后缀(F和D)方法来创建<o:p></o:p>
l 小数的指数形式也支持,如12.3e-23<o:p></o:p>
l 十六进制和八进制也支持,十六进制前缀0x,八进制前缀0<o:p></o:p>
l 整数类型可以使用后面讲的后缀(I、L和G)方法来创建,如果不指定根据数值的大小使用合适的类型<o:p></o:p>
l 数字类型的后缀文字表示<o:p></o:p>
| _Type_<o:p></o:p> | _Suffix_<o:p></o:p> |
| _BigInteger_<o:p></o:p> | G<o:p></o:p> |
| _Long_<o:p></o:p> | L<o:p></o:p> |
| _Integer_<o:p></o:p> | I<o:p></o:p> |
| _BigDecimal_<o:p></o:p> | (缺省)<o:p></o:p> |
| _Double_<o:p></o:p> | D<o:p></o:p> |
| _Float_<o:p></o:p> | F<o:p></o:p> |
l 例子:<o:p></o:p>
(2)Math操作<o:p></o:p>
l Groovy的Math实现很接近Java 1.5 BigDecimal Math模型的实践<o:p></o:p>
l Java.lang.Number包括其子类的二元操作(除了除法)会根据下表自动转换参数类型<o:p></o:p>
| <o:p></o:p> | _BigDecimal_<o:p></o:p> | _BigInteger_<o:p></o:p> | _Double_<o:p></o:p> | _Float_<o:p></o:p> | _Long_<o:p></o:p> | _Integer_<o:p></o:p> |
| _BigDecimal_<o:p></o:p> | BigDecimal<o:p></o:p> | BigDecimal<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | BigDecimal<o:p></o:p> | |
| _BigInteger_<o:p></o:p> | BigDecimal<o:p></o:p> | BigInteger<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | BigInteger<o:p></o:p> | BigInteger<o:p></o:p> |
| _Double_<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> |
| _Float_<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> |
| _Long_<o:p></o:p> | BigDecimal<o:p></o:p> | BigInteger<o:p></o:p> | Double<o:p></o:p> | Double<o:p></o:p> | Long<o:p></o:p> |
本文介绍了Groovy语言中数学运算的特点和支持的数字类型。详细解释了Groovy如何处理各种数字文字表示,包括小数、浮点数、整数及其不同进制的表示方式,并概述了Groovy数学操作符的行为。
308

被折叠的 条评论
为什么被折叠?



