零基础java自学流程-Java语言进阶72
2021/10/19 17:09:45
本文主要是介绍零基础java自学流程-Java语言进阶72,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
想要系统学习JAVA推荐JAVA300集
Java300集零基础适合初学者视频教程←点击
Java中BigDecimal类的介绍和用法
Java提供了具有大数(大于16位)的操作类,即Java .math. bininteger类和Java .math. bigdecimal类,用于高精度计算。
BigInteger类是一个处理大整数的类,而BigDecimal类是一个处理大数字和小数字的类。
BigDecimal类的实现使用了BigInteger类,只不过BigDecimal添加了小数的概念。
浮点数和双精度数只能用于科学或工程计算; 在需要数字精度的商业计算中,必须使用BigInteger和BigDecimal类,它们支持任意精度的定点数,可以用来精确计算货币值。
BigDecimal类创建的对象不能直接使用传统的+、-、*、/算术运算符进行数学计算,但必须调用它们相应的方法。 方法参数也必须是BigDecimal类型的对象。
一、构造BigDecimal 对象常用方法
1、方法一
BigDecimal BigDecimal(double d); //不允许使用
2、方法二
BigDecimal BigDecimal(String s); //常用,推荐使用
3、方法三
static BigDecimal valueOf(double d); //常用,推荐使用
注意:
1. 双构造函数不允许使用!!!! 因为它没有得到准确的值,它会变大;
2. String构造函数是完全可以预测的:写入new BigDecimal("0.1")将创建一个BigDecimal,它完全等于预期的0.1; 因此,通常建议优先使用String构造函数;
3. 静态方法valueOf(double val)内部实现,仍然double to String; 这通常是将double(或float)转换为BigDecimal的首选方法;
测试代码如下:
package com.qiyuan.util; import java.math.BigDecimal; public class orderCode { public static void main(String[] args) { double d1 = 0.10334; double d2 = 1234.0; System.out.println("new BigDecimal("+d1+")=" + new BigDecimal(d1)); //此种方式绝对不允许!!!!! System.out.println("new BigDecimal("+d2+")=" + new BigDecimal(d2)); //此种方式绝对不允许!!!!! System.out.println(""); System.out.println("new BigDecimal(String.valueOf("+d1+"))=" + new BigDecimal(String.valueOf(d1))); System.out.println("new BigDecimal(String.valueOf("+d2+"))=" + new BigDecimal(String.valueOf(d2))); System.out.println(""); System.out.println("new BigDecimal(String.valueOf("+d1+"))=" + new BigDecimal(Double.toString(d1))); System.out.println("new BigDecimal(String.valueOf("+d2+"))=" + new BigDecimal(Double.toString(d2))); System.out.println(""); System.out.println("BigDecimal.valueOf("+d1+")=" + BigDecimal.valueOf(d1)); System.out.println("BigDecimal.valueOf("+d2+")=" + BigDecimal.valueOf(d2)); System.out.println(""); BigDecimal b1 = BigDecimal.valueOf(1); BigDecimal b2 = BigDecimal.valueOf(1.00000); System.out.println(b1.equals(b2)); System.out.println(b1.compareTo(b2)); } }
输出如下:
new BigDecimal(0.10334)=0.10334000000000000130118138486068346537649631500244140625 new BigDecimal(1234.0)=1234 new BigDecimal(String.valueOf(0.10334))=0.10334 new BigDecimal(String.valueOf(1234.0))=1234.0 new BigDecimal(String.valueOf(0.10334))=0.10334 new BigDecimal(String.valueOf(1234.0))=1234.0 BigDecimal.valueOf(0.10334)=0.10334 BigDecimal.valueOf(1234.0)=1234.0 false 0
想要系统学习JAVA推荐JAVA300集
Java300集零基础适合初学者视频教程←点击
这篇关于零基础java自学流程-Java语言进阶72的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南