BigDecimal类
Posted chy18883701161
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BigDecimal类相关的知识,希望对你有一定的参考价值。
一般情况下,计算机不能精确地表示浮点数。Bigdecimal类则可以精确地表示浮点数,并可以对浮点数进行精确的数学计算。
构造函数:
BigDecimal(String num) 传入一个String类型的数值,因为参数直接使用浮点数,计算机表示时会有误差,用字符串表示浮点数则不会有误差。
BigDecimal.valueOf(double num) 如果必须使用double作为参数,则可以使用静态方法来创建对象。
BigDecimal类提供了一系列方法来进行精确地数学运算:
add(BigDecimal bd) 加
subtract(BigDecimal bd) 减
multiply(BigDecimal bd) 乘
divide(BigDecimal bd) 除
2个操作数均为BigDecimal类型,返回值也为BigDecimal类型。
BigDecimal也提供了一个方法将BigDecimal转换为double:
doubleValue() //返回double型的值
示例:
1 package test; 2 3 import java.math.BigDecimal; 4 5 //需要实现Cloneable接口 6 public class Test{ 7 public static void main(String[] args) { 8 BigDecimal db1=new BigDecimal("1.23"); 9 BigDecimal db2=new BigDecimal("1.3435"); 10 //2个操作数、返回值均为BigDecimal类型 11 BigDecimal db3=db1.add(db2); 12 //转换为double类型 13 System.out.println(db3.doubleValue()); 14 //当然BigDecimal类型也可以直接输出,输出的值和double类型的完全一样 15 System.out.println(db3); 16 } 17 18 19 }
以上是关于BigDecimal类的主要内容,如果未能解决你的问题,请参考以下文章
java中写了一个简单计算器,计算0.3*3=0.8999...,有人说要用BigDecimal 类请问要怎么使用最好写一下代码