java中的java.math包是什么?

Python027

java中的java.math包是什么?,第1张

提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。BigInteger 除提供任意精度之外,它类似于 Java 的基本整数类型,因此在 BigInteger 上执行的操作不产生溢出,也不会丢失精度。除标准算法操作外,BigInteger 还提供模 (modular) 算法、GCD 计算、基本 (primality) 测试、素数生成、位处理以及一些其他操作。 BigDecimal 提供适用于货币计算和类似计算的任意精度的有符号十进制数字。BigDecimal 允许用户对舍入行为进行完全控制,并允许用户选择所有八个舍入模式。

from:http://baike.baidu.com/link?url=8hoLoTYEyWCOo9rNKL0x0W-j3ZDmPlTLZK72MgDWl-ZZaAe92bx-x2MJGTXP-p9zs8-CYPCpDWyet0-Tr86dkK

public static long round(double a)

返回最接近参数的 long 长整型。结果将四舍五入为整数,对结果调用 Math.floor函数, 并将所得结果强制转换为 long 类型。

换句话说,结果等于以下表达式的值:

(long)Math.floor(a + 0.5d)

对于负数的四舍五入规则是 先把负数转换为正数,四舍五入后,再转换为负数

-2.6转换为正数2.6,四舍五入2.6+0.5=3.1,然后再转为负数-3.1

用Math.floor函数去掉小数部分为-3,然后强制转换成长整型-3.

-2.4转换为正数2.4,四舍五入2.4+0.5=2.9,然后再转为负数-2.9

用Math.floor函数去掉小数部分为-2,然后强制转换成长整型-2.

所以Math.round(-2.6)=-3,Math.round(-2.4)=-2.