美文网首页
有关BigDecimal的转换

有关BigDecimal的转换

作者: 世道无情 | 来源:发表于2018-12-04 09:17 被阅读0次
1. 概述

这里记录下自己在开发中,对于金额、经纬度等数值,比如116.312606、39.981358等String类型的值,需要把 经纬度的String类型的值转为double,如果直接转为double,可能会有经纬度丢失,所以针对于这种数据,可以先把 String转为 BigDecimal,然后再转为 double,常用的转换如下:

// String -  BigDecimal
BigDecimal b1 = new BigDecimal("116.312606");
BigDecimal b2 = new BigDecimal("39.981358");

// BigDecimal - double
double d1 = b1.doubleValue() ;
double d2 = b2.doubleValue();

// BigDecimal 转 String、int、Double、
BigDecimal b = new BigDecimal(12.10);
String c = b.toString() ;  // 转 String
int c = b.intValue();   // 转 int
double c = b.doubleValue();   // 转 double

// 保留6位小数
NumberFormat format = NumberFormat.getInstance();
format.setMinimumFractionDigits(6);
String s= format.format(double/BigDecimal);
DecimalFormat df = new DecimalFormat("0.000000");
String ss= df.format(double/BigDecimal);

使用BigDecimal(double val)可能精度也会丢失,一般用BigDecimal(String val)

相关文章

网友评论

      本文标题:有关BigDecimal的转换

      本文链接:https://www.haomeiwen.com/subject/fqfpqqtx.html