700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql double 转string类型转换_double类型转化成string

mysql double 转string类型转换_double类型转化成string

时间:2019-01-09 21:30:01

相关推荐

mysql double 转string类型转换_double类型转化成string

public static void main(String[] args) {

double priceWithFreight = 1200.5698d;

System.out.println(priceWithFreight);

//double转string 超过1000小数点会变成逗号的bug, 不要用这个方法

NumberFormat nf = NumberFormat.getInstance();

nf.setRoundingMode(RoundingMode.HALF_UP);//设置四舍五入

nf.setMaximumFractionDigits(2);//设置最大保留几位小数

String str= nf.format(priceWithFreight);

System.out.println(str); // 输出:1,200.57

//正确的double 转string 的方法

BigDecimal b = new BigDecimal(priceWithFreight);

String str1=String.valueOf(b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());

System.out.println(str1); //输出:1200.57

}

double n = 0.01;

double m = 0.06;

System.out.println(m+n); // 输出:0.06999999999999999

需要把 double 转化成 String, 然后转化成 BigDecimal ,再计算:

BigDecimal d1 = new BigDecimal(Double.toString(m)); // d1是 0.06

BigDecimal d2 = new BigDecimal(String.valueOf(n)); // d2 是 0.01

BigDecimal res = d1.add(d2);

System.out.println(res); // 输出: 0.07

或者用以下的方法:

double res2 = m+n; // res2 的值是0.06999999999999999

double val = 1.00;

int scale = 2;

double result = new BigDecimal(Double.toString(res2)).multiply(new BigDecimal(Double.toString(val))).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(result);

ROUND_HALF_UP 四舍五入

如果一个对象 obj 的属性定义为Integer id ,则 obj.getId() + "" 输出的是 “null” 字符串,而不是 空 或者 null 对象。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。