例子1,string 转BigDecimal
public class Test{
public static void main(String[] arg) {
String str1="2.30";
BigDecimal bd=new BigDecimal(str1);
System.out.println(bd);
}
}
直接new 就行了。
例子2,BigDecimal和String的相互转换
/*由数字字符串构造BigDecimal的方法
*设置BigDecimal的小数位数的方法
*/
import java.math.BigDecimal;
//数字字符串
String StrBd="1048576.1024";
//构造以字符串内容为值的BigDecimal类型的变量bd
BigDecimal bd=new BigDecimal(StrBd);
//设置小数位数,第一个变量是小数位数,第二个变量是取舍方法(四舍五入)
bd=bd.setScale(2, BigDecimal.ROUND_HALF_UP);
//转化为字符串输出
String OutString=bd.toString();
补充:原 Integer转BigDecimal
new BigDecimal(Integer.parseInt(findCcid.toString()))
Object转BigDecimal类型:
public static BigDecimal getBigDecimal(Object value) {
BigDecimal ret = null;
if (value != null) {
if (value instanceof BigDecimal) {
ret = (BigDecimal) value;
} else if (value instanceof String) {
ret = new BigDecimal((String) value);
} else if (value instanceof BigInteger) {
ret = new BigDecimal((BigInteger) value);
} else if (value instanceof Number) {
ret = new BigDecimal(((Number) value).doubleValue());
} else {
throw new ClassCastException("Not possible to coerce [" + value + "] from class " + value.getClass() + " into a BigDecimal.");
}
}
return ret;
}
BigDecimal
通常称为大小数类,主要运用在一些对数字精度要求很高的项目上,例如银行项目。
Java
在
java
.math包
中
提供的API类
BigDecimal
,用来对超过16位有效位的数进行精确的运算。下面简单说一下它与
String
类型的
转换
。
1.
BigDecimal
转换
为
String
BigDecimal
num =
new
BigDecimal
("xxx");
String
str ...
我们可以看到,这里拿到的是一个
BigDecimal
类型的数据,
1.
BigDecimal
类型转化为
String
类型的数据
// 这里呢,在industryUseRecordEntity这个对象里面,
// SumSourceNum这个属性存储的数据就是
BigDecimal
类型的数据,
valueList.add(industryUseRecordEntity.getSumSourceNum());
我们只需要在对象前面加上
String
.format("%.0f,)
// %0.f意思就是小数点后面保留0.
String
a = "50.00"; //字符串类型,必须是数字,否则会报错,
java
.lang.NumberFormatException 异常
BigDecimal
b =
new
BigDecimal
(a);
BigDecimal
加法运算
BigDecimal
planeTax=
new
BigDecimal
(bookInfo.getPlane...
(大整数类)
使用时导包:
java
.math.BigInteger
作用:可以使用BigInteger操作大整数,也可以
转换
进制。如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作。这些大数都会以字符串的形式传入。
一、常用构造方法:
BigInteger(int numBit,Random rnd)
构造一个随机生成的 BigInteger,它是在 0 到 (2^numBits – 1)(包括)范围内均匀分布的值。
生成五个范围在0 到 (2^1000 – 1)的随机整
字符串
转换
器
帮助您将
String
转换
为标准
Java
类型列表的 API:
byte/Byte boolean/Boolean char/Charachter short/Short float/Float long/Long double/Double int/Integer
字符串 BigInteger/
BigDecimal
UUID
库还包含带有可替换变压器的缓存。
String
TransformManagerImpl.getInstance().getTransformer(Integer.class).transform("123")
String
TransformManagerImpl.getInstance()
void register(
String
Transformer
string
Transformer); void unregister
一、构造
BigDecimal
BigDecimal
提供了丰富的构造函数,可以通过int、long、double、
String
等来构造一个
BigDecimal
对象。
但是,使用double作为参数的构造函数,无法精确构造一个
BigDecimal
对象,需要自己指定一个上下文的环境,也就是指定精确位。
BigDecimal
bg =
new
BigDecimal
(1.1);
System.out.println(bg.to
String
());
运行结果:
1.100000000000000088817841.
看朋友的BLOG,上面说double和float用于科学计算和工程计算,在商业上要使用
BigDecimal
,特别是由于精度问题和表示范围。
BigDecimal
的其
中
两个构造函数的区别,
BigDecimal
(double val) Translates a double into a
BigDecimal
.
BigDecimal
(
String
val)
8种基本类型所对应的对象类型,可以直接将基本类型的变量表示为一个对象,在执行变量类型的
相互
转换
时,我们会大量使用这些包装类。
包装类有什么用?
1、支持null字面值,可以表示空值。
2、支持缓存,提高复用效率。
3、内部提供多种类型
转换
的方法。
4、可以为Object类型引用赋值,便于使用多态。
有几种包装类?
private static final
BigDecimal
BIGDECIMAL
_ZERO =
new
BigDecimal
("0"); static { // 这里一定要注册默认值,使用null也可以
BigDecimal
Converter bd =
new
BigDecimal
Converter(
BIGDECIMAL
_ZERO);
作者:LanceToBigDatacnblogs.com/zhangyinhua/p/11545305.html一、
BigDecimal
概述
Java
在
java
.math包
中
提供的API类...