Math类

package ch7;

/**

* Created by Jiqing on 2016/11/24.

*/

public class MathDemo {

public static void main(String[] args) {

/* 取整运算 */

// 返回小于目标数的最大整数

System.out.println("Math.floor(-1.2):"+Math.floor(-1.2)); // -2.0

// 返回大于目标数的最小整数

System.out.println("Math.ceil(1.2):"+Math.ceil(1.2)); // 2.0

// 四舍五入取整

System.out.println("Math.round(2.3):" +Math.round(2.3)); // 2

/* 大小相关计算 */

// 找出最大值

System.out.println("Math.max(2.3,4.5):"+Math.max(2.3,4.5)); // 4.5

// 找出最小值

System.out.println("Math.min(2.3,4.5):"+Math.min(2.3,4.5)); // 2.3

// 返回一个随机数0~1之间

System.out.println("Math.random():"+Math.random());

}

}

BigDecimal

package ch7;

import java.math.BigDecimal;

/**

* Created by Jiqing on 2016/11/24.

*/

public class BigDecimalDemo {

public static void main(String[] args) {

// float、double容易精度丢失

System.out.println("0.05 + 0.01 = " + (0.05 + 0.01)); //0.060000000000000005

System.out.println("1.0 - 0.42 = " + (1.0 - 0.42)); //0.5800000000000001

System.out.println("4.015 * 100 = " + (4.015 * 100)); // 401.49999999999994

System.out.println("123.3 / 100 = " + (123.3 / 100)); // 1.2329999999999999

// BigDecimal解决精度问题

BigDecimal f1 = new BigDecimal("0.05"); // 使用String作为构造器参数

BigDecimal f2 = BigDecimal.valueOf(0.01);

BigDecimal f3 = new BigDecimal(0.05); // 使用double作为构造器参数

System.out.println("使用String作为BigDecimal构造器参数:");

System.out.println("0.05 + 0.01 = " + f1.add(f2));

System.out.println("0.05 - 0.01 = " + f1.subtract(f2));

System.out.println("0.05 * 0.01 = " + f1.multiply(f2));

System.out.println("0.05 / 0.01 = " + f1.divide(f2));

//使用String作为BigDecimal构造器参数:

//0.05 + 0.01 = 0.06

//0.05 - 0.01 = 0.04

//0.05 * 0.01 = 0.0005

//0.05 / 0.01 = 5

System.out.println("使用double作为BigDecimal构造器参数:");

System.out.println("0.05 + 0.01 = " + f3.add(f2));

System.out.println("0.05 - 0.01 = " + f3.subtract(f2));

System.out.println("0.05 * 0.01 = " + f3.multiply(f2));

System.out.println("0.05 / 0.01 = " + f3.divide(f2));

//使用double作为BigDecimal构造器参数:

//0.05 + 0.01 = 0.06000000000000000277555756156289135105907917022705078125

//0.05 - 0.01 = 0.04000000000000000277555756156289135105907917022705078125

//0.05 * 0.01 = 0.0005000000000000000277555756156289135105907917022705078125

//0.05 / 0.01 = 5.000000000000000277555756156289135105907917022705078125

}

}

衍生出来的工具类Arith

package ch7;

import java.math.BigDecimal;

import java.util.function.BinaryOperator;

/**

* Created by Jiqing on 2016/11/24.

*/

public class Arith {

// 进行精确计算的工具类

// 默认除法运算精度

private static final int DEF_DIV_SCALE = 10;

// 构造器私有,让这个类不能实例化

private Arith() {}

// 提供精确的加法运算

public static double add(double v1,double v2) {

BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.add(b2).doubleValue();

}

// 提供精确减法运算

public static double sub(double v1,double v2) {

BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.subtract(b2).doubleValue();

}

// 提供精确的乘法运算

public static double mul(double v1,double v2) {

BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.multiply(b2).doubleValue();

}

// 提供相对精确的除法运算

public static double div(double v1,double v2) {

BigDecimal b1 = BigDecimal.valueOf(v1);

BigDecimal b2 = BigDecimal.valueOf(v2);

return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();

}

public static void main(String[] args) {

System.out.println("0.05 + 0.01= " + Arith.add(0.05,0.01)); //0.05 + 0.01= 0.06

System.out.println("1.0 - 0.42= " + Arith.sub(1.0,0.42)); //1.0 - 0.42= 0.58

System.out.println("4.015 * 100= " + Arith.mul(4.015,100)); //4.015 * 100= 401.5

System.out.println("123.3 / 1000= " + Arith.div(123.3,1000)); //123.3 / 1000= 0.1233

}

}

bigdecimal java 最大值_Java中的数学运算BigDecimal相关推荐

  1. math java 计算_Java中的数学计算函数汇总

    Math类:  java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...

  2. 捋一捋Python中的数学运算math库(上篇)

    正式的Python专栏第18篇,同学站住,别错过这个从0开始的文章! 很多学习编程的都多多少少学习了一些数学知识. 学委之前也简单吐槽了 Python中奇葩的round函数! 这篇我们讲讲那些常用的数 ...

  3. linux shell数学计算器,技术|使用 GNU bc 在 Linux Shell 中进行数学运算

    在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言. 大多数 POSIX 系统带有 GNU bc,这是一种任意精度的数字处理语言.它的语法类似于 C,但是它也支持交互式执行语句 ...

  4. linux中bc用法英文,使用GNU bc在Linux Shell中进行数学运算

    在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言. 大多数 POSIX 系统带有 GNU bc,这是一种任意精度的数字处理语言.它的语法类似于 C,但是它也支持交互式执行语句 ...

  5. Python中的数学运算操作符使用进阶

    原文链接:https://www.jb51.net/article/86988.htm 这篇文章主要介绍了Python中的数学运算操作符使用进阶,也包括运算赋值操作符等基本知识的小结 Python中对 ...

  6. Microsoft Excel 教程:如何在 Excel 中进行数学运算?

    欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中进行数学运算,而不是使用计算器.可以输入简单的公式来对两个或多个数 ...

  7. java小数是怎么运算的_JAVA中小数的运算

    虽然几乎每种处理器和编程语言都支持浮点运算,但大多数程序员很少注意它.这容易理解 ― 我们中大多数很少需要使用非整数类型.除了科学计算和偶尔的计时测试或基准测试程序,其它情况下几乎都用不着它.同样,大 ...

  8. java中大数开方_Java中的大数运算

    # 一:大数运算出现的背景 java里面整型int与浮点型float,double它们存放数据的范围是有限的,当出行更大的数值时会发生溢出. 最典型的场景是金融行业,直接使用单精度或者双精浮点数来表示 ...

  9. java 负数 位移运算_Java中的位移运算

    在Java中,位移运算属于基本运算,符号是<>,即向左位移和向右位移.在Java中只有整数才能位移,所以其他的不考虑,位移运算是将整数在内存中表示的二进制进行位移,所以在Java中分为正数 ...

最新文章

  1. C#引用C++ Dll 所有類型轉換的方式(转)
  2. 【百战GAN】如何使用GAN拯救你的低分辨率老照片
  3. 圈子 | 精彩预告:P2P金融那些事儿
  4. Intel Realsense 如何获取已连接所有摄像头的序列号参数?context() query_devices() size() camera_info device_list
  5. Redis基础系列-0x003:String
  6. java查询类提供的方法_查询一个类的方法和构建器的JAVA程序
  7. 云耀云服务器性能怎么样,华为云测评:2CPU+4G内存+5M带宽的云耀云服务器HECS
  8. android 触摸防抖,一种触摸屏防抖优化方法、系统及触摸屏终端与流程
  9. 第二次作业+105032014149
  10. Exact-k:组合推荐的秘密
  11. php begintransaction,PDO::beginTransaction用法详解
  12. [置顶] 关于Android图形系统的一些事实真相
  13. 大一计算机专业学期计划范文,大一新学期学习计划范文(通用5篇)
  14. 3060ti适配的cuda和cudnn
  15. 两个鸡蛋100层楼(DP)
  16. 从小小线虫谈起——溯源神经系统进化,开启生命模拟
  17. 苹果手机有什么好玩的app推荐
  18. RTKLIB_RTCM解码学习
  19. PTA 实验7-5 输出大写英文字母(10 分)
  20. 人工智能中的线性代数:如何理解并更好地应用它

热门文章

  1. 51Nod-1179 最大的最大公约数【暴力】
  2. TFRecord —— tensorflow 下的统一数据存储格式
  3. for 循环 and while 循环(三)
  4. [面试] C/C++ 语法(七)—— C++ 类型转换
  5. emcee——Quickstart
  6. 免费python课程排行榜-Python基础练习(一)中国大学定向排名爬取
  7. python课程网课-有没有简单易懂的入门级Python辅导书或网络课程?
  8. python基础知识-python基础知识,python必背内容,一、python的基
  9. python是什么软件-Python 是什么软件?
  10. python教程-Python快速教程