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 对象。

double类型转化成string的更多相关文章

  1. 基础类型转化成String 转

    基础类型转化成String 在程序中你可能时常会需要将别的类型转化成String,有时候可能是一些基础类型的值.在拼接字符串的时候,如果你有两个或者多个基础类型的值需要放到前面,你需要显式的将第一个值 ...

  2. java从Object类型转换成double类型

    java从Object类型转换为double类型: Map<String,Object> map = new HashMap<String,Object>(); map.put ...

  3. C++中将string类型转换为int, float, double类型 主要通过以下几种方式:

      C++中将string类型转换为int, float, double类型 主要通过以下几种方式: # 方法一: 使用stringstream stringstream在int或float类型转换为 ...

  4. C++ double类型转string类型后,怎么实现小数点后只显示一个数字

    C++ double类型转string类型后,怎么实现小数点后只显示一个数字 #include <iostream> #include <sstream> #include & ...

  5. Java中String转换Double类型 Java小数点后留两位

    Java中String转换Double类型 double num1 = 0.0; String qq = "19.987"; num1 = Double.valueOf(qq.to ...

  6. java对象转化成String类型

    在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object#toString(),(String)要转换的对象,St ...

  7. java中将string类型转int类型或者将string类型转long类型方法

    将字串 String 转换成整数 int 两种方法: 1).int i = Integer.parseInt("111"); 或 i = Integer.parseInt([Str ...

  8. 关于BigDecimal 和 double 类型保存金钱,以及精度问题,银行家舍入法

    1. BigDecimal 类型数据 的创建,构造函数 有 public BigDecimal(BigInteger intVal, long val, int scale, int prec); p ...

  9. 给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以返回12。

    分析,是一个dp的题目, 设f[i]表示以i为结尾的最大值,g[i]表示以i结尾的最小值,那么 f[i+1] = max{f[i]*arr[i+1], g[i]*arr[i+1],arr[i+1]} ...

随机推荐

  1. ES6 Reflect

    1.Reflect概述 ES6 为了操作对象而提供的新 API 2.Reflect设计目的 (1)将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到 ...

  2. 织梦dedecms dede plus文件作用介绍及安全设置

    一.安装设置 1.默认的后台模块中心有很多模块. 这里除了"友情链接"模块其他都可以删掉.在后台可以先卸载再删除. 2.如果是一开始就不想要的话,安装版plus目录下进行如下操作. ...

  3. DDCX2018届校招内推笔试——算法工程师

    -------------------------------------------------------------------------[选择题]---------------------- ...

  4. linux下各种形式的shell加法操作总结

    linux 下shell加法操作总结: #!/bin/bash   n=1;echo -n "$n "   let "n = $n + 1" echo -n & ...

  5. IOT表

    以前在接触索引的时候,就想过要是表字段太少,索引效果不是很不好吗,直接用索引不是更直接吗?后来因为懒惰也没有去查找相关资料.正好今天看到了table organization index,看了一下,实 ...

  6. GridView中实现全选与取消全选,以便同时删除多条数据

    我们项目后台操作中不可避免的会有同时删除多项的操作,本文实现的就是当点击全选时,选定当前页中所有项,当取消了某一项的选定,则“全选”CheckBox的checked也为false:然后在后台中取到所选 ...

  7. STL容器分析--vector

    vector是一种动态数组,是基本数组的类模板. vector,支持随机访问.在数据结构上,属于顺序线性表. 而且,由于是动态数组,

  8. 分布式协调服务ZooKeeper工作原理

    分布式协调服务ZooKeeper工作原理 原创 2016-02-19 杜亦舒 性能与架构 性能与架构 性能与架构 微信号 yogoup 功能介绍 网站性能提升与架构设计 大数据处理框架Hadoop.R ...

  9. PHP REST架构简单设计

    REST是什么? REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性. REST的特点 ...

  10. urllib3学习

    urllib3.connectionpool.connection_from_url(url, **kw) Given a url, return an ConnectionPool instance ...