mysql double bigde_BigDecimal类的构造函数——将double类型转换为BigDecimal类型

该博客探讨了如何将double类型转换为BigDecimal以确保数值精度,详细介绍了使用不同构造函数和方法(如直接转换、转换为字符串、使用MathContext等)的步骤和输出结果。
摘要由CSDN通过智能技术生成

packagearchie2010;

import

java.math.BigDecimal;

import

java.math.MathContext;

public

class

BigDecimalTest {

public

static

void

main(String[] args) {

// TODO Auto-generated method stub

double

d1,d2;

d1 = 0.10334

;

d2 = 1234.0

;

System.out.println("直接输出double类型的值:"

);

printDouble(d1, d2);

System.out.println("将double类型直接转换为BigDecimal类型,再输出:"

);

printDoubleToBigDecimal(d1, d2);

System.out.println("将double类型转换为String类型,再转换为BigDecimal类型,再输出:"

);

printDoubleToStrToBigDecimal(d1, d2);

System.out.println("使用静态方法valueOf将double转换为BigDecimal类型并输出:"

);

printDoubleToBigDecimalWithValueof(d1,d2);

System.out.println("直接将double类型值转换为确定精度为3的BigDecimal类型值:"

);

printDoubleToBigDecimalWithPrecision(d1, d2, 3

);

System.out.println("将double类型值转换为String类型再转换为确定精度(3)的BigDecimal类型值:"

);

printDoubleToBigDecimalWithPrecisionAsStr(d1,d2,3

);

}

public

static

void

printDouble(

double

v1,

double

v2){

System.out.println("d1="

+v1);

System.out.println("d2="

+v2);

}

public

static

void

printDoubleToBigDecimal(

double

v1,

double

v2){

BigDecimal d1TobigDe = new

BigDecimal(v1);

BigDecimal d2TobigDe = new

BigDecimal(v2);

System.out.println("d1TobigDe="

+d1TobigDe);

System.out.println("d2TobigDe="

+d2TobigDe);

}

public

static

void

printDoubleToStrToBigDecimal(

double

v1,

double

v2){

BigDecimal d1ToStrToBigDe = new

BigDecimal(String.valueOf(v1));

BigDecimal d2ToStrToBigDe = new

BigDecimal(String.valueOf(v2));

System.out.println("d1ToStrToBigDe="

+d1ToStrToBigDe);

System.out.println("d2ToStrToBigDe="

+d2ToStrToBigDe);

}

public

static

void

printDoubleToBigDecimalWithValueof(

double

v1,

double

v2){

System.out.println("BigDecimal.valueOf(d1)="

+BigDecimal.valueOf(v1));

System.out.println("BigDecimal.valueOf(d2)="

+BigDecimal.valueOf(v2));

}

public

static

void

printDoubleToBigDecimalWithPrecision(

double

v1,

double

v2,

int

setPrecision){

BigDecimal d1ToBigDeWithPre = new

BigDecimal(v1,

new

MathContext(setPrecision));

BigDecimal d2ToBigDeWithPre = new

BigDecimal(v2,

new

MathContext(setPrecision));

System.out.println("d1ToBigDeWithPre="

+d1ToBigDeWithPre);

System.out.println("d2ToBigDeWithPre="

+d2ToBigDeWithPre);

}

public

static

void

printDoubleToBigDecimalWithPrecisionAsStr(

double

v1,

double

v2,

int

setPrecision){

BigDecimal d1ToStrToBigDeWithPre = new

BigDecimal(String.valueOf(v1),

new

MathContext(setPrecision));

BigDecimal d2ToStrToBigDeWithPre = new

BigDecimal(String.valueOf(v2),

new

MathContext(setPrecision));

System.out.println("d1ToStrToBigDeWithPre="

+d1ToStrToBigDeWithPre);

System.out.println("d2ToStrToBigDeWithPre="

+d2ToStrToBigDeWithPre);

}

}

---------------------------------------

运行结果:

直接输出double类型的值:d1=0.10334d2=1234.0将double类型直接转换为BigDecimal类型,再输出:d1TobigDe=0.10334000000000000130118138486068346537649631500244140625d2TobigDe=1234将double类型转换为String类型,再转换为BigDecimal类型,再输出:d1ToStrToBigDe=0.10334d2ToStrToBigDe=1234.0使用静态方法valueOf将double转换为BigDecimal类型并输出:BigDecimal.valueOf(d1)=0.10334BigDecimal.valueOf(d2)=1234.0直接将double类型值转换为确定精度为3的BigDecimal类型值:d1ToBigDeWithPre=0.103d2ToBigDeWithPre=1.23E+3将double类型值转换为String类型再转换为确定精度(3)的BigDecimal类型值:d1ToStrToBigDeWithPre=0.103d2ToStrToBigDeWithPre=1.23E+3

参考文献:http://www.cnblogs.com/archie2010/archive/2011/04/01/2002415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值