public static String format(double dValue, int lScale) {
// ////负数,则装化为正数后进行四舍五入
boolean bFlag = false;
if (dValue < 0) {
bFlag = true;
dValue = -dValue;
}
long lPrecision = 10000; // 精度值,为了避免double型出现偏差,增加校验位
long l45Value = lPrecision / 2 - 1; // 四舍五入的判断值
long lLength = 1; // 乘的数字
for (int i = 0; i < lScale; i++) {
lLength = lLength * 10; // 比如保留2位,乘以100
}
long lValue = (long) dValue; // 值的整数部分
long lValue1 = (long) ((dValue - lValue) * lLength); // 乘以保留位数
long lValue2 = (long) ((dValue - lValue) * lLength * lPrecision); //
long lLastValue = lValue2 - (lValue2 / lPrecision) * lPrecision;
if (lLastValue >= l45Value) {
lValue1++;
}
dValue = lValue + (double) lValue1 / lLength; // 四舍五入后的值
if (bFlag) {
dValue = -dValue;
}
java.math.BigDecimal bd = new java.math.BigDecimal(dValue);
bd = bd.setScale(lScale, java.math.BigDecimal.ROUND_HALF_UP);
return bd.toString();
// Replace by Huang Ye
// double d = UtilOperation.Arith.round(dValue, lScale);
// return String.valueOf(dValue);
}

double保留两位小数的更多相关文章

  1. java 金额计算,商业计算 double不精确问题 BigDecimal,Double保留两位小数方法

    解决办法================== http://blog.javaxxz.com/?p=763 一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法 进行精 ...

  2. java使double保留两位小数的多方法

    java使double保留两位小数的多方法 java保留两位小数 mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat ...

  3. java使double保留两位小数的多方法 java保留两位小数

    这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 复制代码 代码如下: mport java.text.DecimalFormat; DecimalFormat    d ...

  4. java double 保留两位小数

    java保留两位小数问题: 方式一: 四舍五入  double   f   =   111231.5585;  BigDecimal   b   =   new   BigDecimal(f);  d ...

  5. 【.Net】c# 让double保留两位小数

    1.Math.Round(0.333333,2);//按照四舍五入的国际标准2.    double dbdata=0.335333;    string str1=String.Format(&qu ...

  6. c# 让double保留两位小数

    1.Math.Round(0.333333,2);//按照四舍五入的国际标准2.    double dbdata=0.335333;    string str1=String.Format(&qu ...

  7. java中将double保留两位小数,将double保留两位小数并转换成String

    将Double类型的数据保留2位小数: Double a = 3.566; BigDecimal bd = new BigDecimal(a); Double d = bd.setScale(2, B ...

  8. C#double保留两位小数

    public static void Main(string[] args) { double db = Math.PI; db = Math.Round(db,); Console.WriteLin ...

  9. Double 数据保留两位小数一:五舍六入

    package com; public class T2 { public static void main(String[] args) { System.out.println(calculate ...

随机推荐

  1. 转:SQL Server 动态行转列

    http://www.cnblogs.com/gaizai/p/3753296.html http://www.cnblogs.com/maanshancss/archive/2013/03/13/2 ...

  2. error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken...

    之前在自己的项目中添加了一个分支,然后做了一些操作,比如同步本地的分支情况到远程仓库中,然后在远程仓库中完成分支合并,以及 Pull request 等等操作,后来,在本地仓库中进行 git fetc ...

  3. 关于windows 下每次打开IE 8都弹出欢迎使用Internet Explorer 8 弹窗的关闭方法

    今天笔者在安装完windows 操作系统后,发现了一个问题,即每次打开IE 8浏览器,都会弹出一个欢迎界面: 弹窗标题为:设置windows Internet Explorer,具体内容如下图所示: ...

  4. ArcEngine临时数据存储 创建内存工作空间

    参考网址,这里 工作中有时候需要使用临时数据,以前都是创建一个默认的shapefile或者gdb,今天发现esri官方帮助文档给出了一个方法,可以创建内存工作空间,代码如下: public stati ...

  5. Linux 下安装mysql 5.7

    Linux 下安装mysql 5.7 本人首次安装时按照菜鸟教程的步骤一步一步来的,结果意外的是 装成5.6了,而且各种无厘头的问题,例如无法启动... 本文参照 大佬:‘这个名字想了很久~’ 的&l ...

  6. swust oj 1069

    图的按录入顺序广度优先搜索 5000(ms) 10000(kb) 2347 / 4868 Tags: 广度优先 图的广度优先搜索类似于树的按层次遍历,即从某个结点开始,先访问该结 点,然后访问该结点的 ...

  7. python全栈开发 * 15知识点汇总 * 180621

    #15 函数二 与 匿名函数1.dir() # 查看内置属性,将对象所有方法名放在另一个列表中.dic={"水果":"香蕉",'蔬菜':"土豆&quo ...

  8. 使用FreeMarker生成word文档

    生成word文档的框架比较多,比如poi,java2word,itext和freemarker. 调研之后,freemarker来实现挺简单的,具体步骤如下: 1. 新建word文档,占位符用${}, ...

  9. python------接口(get请求、post请求), 图片、歌曲下载,网页返回,上传文件

    接口(get请求.post请求 --json), 图片.歌曲下载(context),网页返回(text),上传文件   import requests######################### ...

  10. C#4.5-4.7学习总结

    4.5讲的是this关键字.它用于表示对当前实例的引用,它有三种用法,一是访问属性,解决与局部变量名称冲突问题,二是访问成员方法,在类中调用自己的成员方法,就是在一个方法中,通过this.方法名,调用 ...