双精度浮点型数据运算精度丢失以及数据的格式化问题
来源:互联网 发布:月子中心 知乎 编辑:程序博客网 时间:2024/04/28 02:53
不多说,直接上测试代码:
public class DemoBigDicimal { @Test public void test(){ DecimalFormat df = new DecimalFormat("#,##0.00"); DecimalFormat df2 = new DecimalFormat("#.00");//这种如果是0.xx的话,显示还是有问题.前面的0会消失 DecimalFormat df3 = new DecimalFormat("0.00");// float a = 20000000f; float b = 12f; System.out.println(df.format(a/b));//1,666,666.62 System.out.println(df2.format(a/b));//1666666.62 System.out.println(a/b);//1666666.6 double c = 1.0; double d = 3.0; System.out.println(df.format(c/d));//0.33 System.out.println(df2.format(c/d));//.33 System.out.println(df3.format(c/d));//0.33 System.out.println(c/d);//0.3333333333333333 System.out.println((float)1/3 + (float)2/3);//1.0 System.out.println("----------------------------------------------------------------------"); System.out.println(1.79 + 0.12);//1.9100000000000001 System.out.println(add(1.79,0.12));//1.91 System.out.println(2.01 - 0.12);//1.8899999999999997 System.out.println(sub(2.01,0.12));//1.89 System.out.println(1.01 * 1.3);//1.3130000000000002 System.out.println(mul(1.01,1.3));//1.313 System.out.println(0.69 / 10);//0.06899999999999999 System.out.println(div(0.69,10));//0.069 } public static double add(double num,double num2){ BigDecimal n = new BigDecimal(Double.toString(num)); BigDecimal n2 = new BigDecimal(Double.toString(num2)); return n.add(n2).doubleValue(); } public static double sub(double num,double num2){ BigDecimal n = new BigDecimal(Double.toString(num)); BigDecimal n2 = new BigDecimal(Double.toString(num2)); return n.subtract(n2).doubleValue(); } public static double mul(double num,double num2){ BigDecimal n = new BigDecimal(Double.toString(num)); BigDecimal n2 = new BigDecimal(Double.toString(num2)); return n.multiply(n2).doubleValue(); } public static double div(double num,double num2){ BigDecimal n = new BigDecimal(Double.toString(num)); BigDecimal n2 = new BigDecimal(Double.toString(num2)); return n.divide(n2).doubleValue(); }}
阅读全文
0 0
- 双精度浮点型数据运算精度丢失以及数据的格式化问题
- 解决浮点型运算精度丢失问题
- 浮点型数据的精度控制问题
- 浮点型运算精度丢失
- 关于商业运算中浮点型运算丢失精度问题
- js浮点运算精度丢失的解决办法
- js浮点运算精度丢失的解决办法
- 详细剖析浮点型运算的精度丢失
- 详细剖析浮点型运算的精度丢失
- 详细剖析浮点型运算的精度丢失
- 浮点类型运算精度丢失
- 也谈浮点精度问题:找回丢失的精度
- 浮点数精度丢失问题的解决
- Java中的浮点型进行四则运算精度丢失的问题
- js处理浮点型的bug问题--js精度丢失
- C语言中单精度和双精度浮点型数据的数值范围
- 浮点数精度丢失问题
- 关于Java浮点数运算精度丢失问题
- 最简单的IOS Block与协议 block作为函数参数的使用
- 二级指针做输入的3种模型-1
- Invalid format: "07-31-2017 7:32:06 PM" is malformed at "PM" 异常源码分析
- Java线程池
- java线程池原理
- 双精度浮点型数据运算精度丢失以及数据的格式化问题
- C++赋值运算符与赋值表达式
- KNN简单实现
- SQL 文档快查手册
- checkbox全选和全部选
- lazyman js流程控制
- python 相关系数
- JS,RGB颜色值转RGBA颜色值
- 基于ajax的三层,实现数据库增删改查基础(四 UI层)