java基础之大数值
2016-01-03 09:39
351 查看
大数值
API
java.math.BigIntegeradd()
subtract()
multiply()
divide()
mod(BigInteger)
compareTo(BigInteger)
相等返回0 小于返回负数 大于返回正数
valueOf(long x)
java.math.BigDecimal
add()
subtract()
multiply()
divide()
compareTo()
valueOf()
float 和 double 类型主要是为了科学计算和工程计算 他们执行二进制浮点运算他们没有提供完全精确的结果,而商业计算要求结果精确,这时候可以使用BigDecimal
BigDecimal a=new BigDecimal(1.22); System.out.println("用double类型来调用构造函数:"+a); BigDecimal b=new BigDecimal("1.22"); System.out.println("用String 类型来调用构造函数"+b);
结果分析:参数类型为double 的构造方法的结果有一定的不可预知性,而参数为String的构造方法结果是可以预知的,建议优先使用String构造方法
2 当double必须作为BigDecimal的参数时,可以先使用Double.toString 再用BigDecimal(String)
BigDecimal BigInteger 每一步的加 减 乘 除 都产生了一个新的对象
import java.math.BigDecimal; public class Arith { // 指定精度 private static final int DEFALUT_SCALE = 2; /** * 构造器私有 */ private Arith() { } /** * 两个浮点型的和 */ public static double add(double d1, double d2) { // 先转成BigDecimal BigDecimal b1 = BigDecimal.valueOf(d1); BigDecimal b2 = BigDecimal.valueOf(d2); return b1.add(b2).doubleValue(); } /** * 两个浮点型的差 */ public static double sub(double d1, double d2) { // 先转成BigDecimal BigDecimal b1 = BigDecimal.valueOf(d1); BigDecimal b2 = BigDecimal.valueOf(d2); return b1.subtract(b2).doubleValue(); } /** * 两个浮点型的积 */ public static double mutil(double d1, double d2) { // 先转成BigDecimal BigDecimal b1 = BigDecimal.valueOf(d1); BigDecimal b2 = BigDecimal.valueOf(d2); return b1.multiply(b2).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 两个浮点型的商 */ public static double div(double d1, double d2) { // 先转成BigDecimal BigDecimal b1 = BigDecimal.valueOf(d1); BigDecimal b2 = BigDecimal.valueOf(d2); return b1.divide(b2,2,BigDecimal.ROUND_HALF_UP).doubleValue(); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树