double保留两位小数
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保留两位小数的更多相关文章
- java 金额计算,商业计算 double不精确问题 BigDecimal,Double保留两位小数方法
解决办法================== http://blog.javaxxz.com/?p=763 一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法 进行精 ...
- java使double保留两位小数的多方法
java使double保留两位小数的多方法 java保留两位小数 mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat ...
- java使double保留两位小数的多方法 java保留两位小数
这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 复制代码 代码如下: mport java.text.DecimalFormat; DecimalFormat d ...
- java double 保留两位小数
java保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); d ...
- 【.Net】c# 让double保留两位小数
1.Math.Round(0.333333,2);//按照四舍五入的国际标准2. double dbdata=0.335333; string str1=String.Format(&qu ...
- c# 让double保留两位小数
1.Math.Round(0.333333,2);//按照四舍五入的国际标准2. double dbdata=0.335333; string str1=String.Format(&qu ...
- java中将double保留两位小数,将double保留两位小数并转换成String
将Double类型的数据保留2位小数: Double a = 3.566; BigDecimal bd = new BigDecimal(a); Double d = bd.setScale(2, B ...
- C#double保留两位小数
public static void Main(string[] args) { double db = Math.PI; db = Math.Round(db,); Console.WriteLin ...
- Double 数据保留两位小数一:五舍六入
package com; public class T2 { public static void main(String[] args) { System.out.println(calculate ...
随机推荐
- Window 产品密钥
2019.4.2 测试可用 window2003 DF74D-TWR86-D3F4V-M8D8J-WTT7M
- python简述
python男神:龟叔 三,python基础初识. 1,运行python代码. 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确 ...
- roadhog 介绍
官方网站:https://www.npmjs.com/package/roadhog; 项目搭建demo: https://github.com/ght5935/antd-dva-less-webpa ...
- Git查看两个版本之间修改了哪些文件
gdiff 63e3b647d55fcc643e793e650c893be8601719b1 548cdaf01dbc2f08d1ca0b697a24afe512b75a2f --stat git l ...
- win10下Redis安装
环境:win64 1.因为Redis官方不支持Windows,所在只能在GitHub上下载,下载地址:https://github.com/ServiceStack/redis-windows/blo ...
- C++多态等知识点
分清虚函数和纯虚函数的区别:(1).虚函数是函数前加关键字virtual,一般定义格式为:virtual 类型 函数名 (参数表){ 函数体 } (2).纯虚函数的生命格式为: virtual 类型 ...
- Linux命令 sed
一. 以行为单位进行操作. d:删除 $ nl passwd | sed '2,5d' # 删除第2~5行 $ nl passwd | sed '2d' # 删除第2行 $ nl passwd | ...
- fiddler 抓手机包 and post get
手机一般用自己的手机 安装协议 用 自带浏览器安装 安装之后就任何浏览器都可以浏览 post get 查看 右键...Customize Columns ..Miscellaneous...R ...
- mybatis cloud not autowired
mybatis代码生成器生成的mapper在service引用的时候报cloud not autowired.... 即是在pom.xml中配置了不过滤mapper文件,报错还在 其实这不影响使用,但 ...
- 线程同步-使用ReaderWriterLockSlim类
使用ReaderWriterLockSlim创建一个线程安全的机制,在多线程中对一个集合进行读写操作.ReaderWriterLockSlim代表了一个管理资源访问的锁,允许多个线程同时读取,以及独占 ...