当使用double进行商业运算时,double计算会丢失精度。可以使用BigDecimal进行计算。

import java.math.BigDecimal;

import org.junit.Test;

public class TestBigDecimal{

@Test

public void test(){

double a=0.1;

double b=0.2;

System.out.println(a+b);

BigDecimal a1=new BigDecimal("0.1");

BigDecimal b1=new BigDecimal("0.2");

System.out.println(a1+b1);

BigDecimal c1=new BigDecimal("0.23574");

a1=a1.add(c1);

a1=a1.setScale(1,BigDecimal.ROUND_DOWN);

System.out.println(a1);

}

}

运行后,输出结果如下:

0.30000000000000004

0.3

0.4

double的加减无法精确计算出0.3,而使用BigDecimal却可以。

当然,如果直接将double传给BigDecimal,你会发现不但无法解决精度问题,反而对精度进行了补全。所以,为确保精度,我们将String传给它。

还可以看到上边使用了.setScale方法,它还有很多方法供我们使用:

add(BigDecimal)        BigDecimal对象中的值相加,然后返回这个对象。

subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。

multiply(BigDecimal)  BigDecimal对象中的值相乘,然后返回这个对象。

divide(BigDecimal)     BigDecimal对象中的值相除,然后返回这个对象。

toString()                将BigDecimal对象的数值转换成字符串。

doubleValue()          将BigDecimal对象中的值以双精度数返回。

floatValue()             将BigDecimal对象中的值以单精度数返回。

longValue()             将BigDecimal对象中的值以长整数返回。

intValue()               将BigDecimal对象中的值以整数返回。

js 转换数字为decmail_BigDecmail(解决java计算精度问题)相关推荐

  1. JS 转换数字/日期大全

    toExponential([fractionDigits])  :将数字按科学计数法格式返回,其中的fractionDigits值小数点后保留的位数.   toFixed([fractionDigi ...

  2. JS 转换数字为大写

    1 function toUpper(n) { 2 n = n+''; 3 var unit = '十百千万'; 4 var num = '一二三四五六七八九 '; 5 var array = new ...

  3. js四舍五入和计算精度问题

    js四舍五入和计算精度问题 业务背景 计算精度问题(mathjs) 四舍五入问题 无效方案一:toFixed(2) 无效方案二:小数位截取计算 无效方案三:Math.round(n*100)/100 ...

  4. oracle最小精度,【整理+原创】Oracle的计算精度与误差

    也不算总结帖,至多算个小结帖 由近期看到的帖子想到的,本主题只讨论数字 1.Oracle的计算精度是多少? Oracle的数字精度最多是38位,计算精度当然也就这么多了,否则如何表示计算结果?呵呵 O ...

  5. PHP 浮点数计算精度问题

    近日计算价格时,0.91 + 0.1 = 0.91999999: 查看了各种论坛后,发现是浮点数计算精度问题造成的 浮点数运算精度丢失的产生原因 ​ 在计算机中,只有二进制的数据才能被识别和处理.所以 ...

  6. JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去… 及其浮点数计算精度问题(推荐的类库 Numeral.js 和 accounting.js)...

    前端开发中经常会碰到用 JavaScript 格式化数字,最最常见的是格式化金额,一般格式化金额需要千分位分隔,保留2位小数等等. 还有偶然会遇到的使用 js 计算浮点数时出现误差. 完善的功能函数推 ...

  7. 前端利用JS导出数据到Excel表 数字是文本类型 无法计算

    问题描述:前端利用JS导出数据到Excel表 数字是文本类型 无法进行公式计算:前端利用JS导出数据到Excel表 数字是文本类型 无法计算 解决办法:参考https://bbs.csdn.net/t ...

  8. 用decimal.js库解决JavaScript中计算精度丢失的问题

    项目场景: 涉及小数点的计算 精度丢失原因看这里 解决 用decimal.js库,decimal.js是使用的二进制来计算的, 所以能解决js的精度问题. 安装和引入 执行命令npm i decima ...

  9. java js 转换_[Java教程]javascript 类型转换。

    [Java教程]javascript 类型转换. 0 2016-10-11 18:00:06 目录: 1 : 伪对象 2 : 转换为字符串 3 : 数字转字符串 4 : 转换为数字 5 : 转换为Bo ...

最新文章

  1. 《网站分析师实战指南》一1.4 进入实战之路
  2. Linux中使用gcp拷贝报错:dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotSupported:
  3. spring cloud微服务分布式云架构(四)-断路器(Hystrix)
  4. android蓝牙pair,Android向更多蓝牙设备开放Fast Pair功能 配对更轻松了
  5. arp攻击 python_python之arp攻击
  6. VS2008中对.Net 3.5 sp1程序打安装包的前提系统环境的配置
  7. java反射三种方法_Java基础入门要学哪些 怎么掌握反射和枚举
  8. Shell脚本中date的用法小结
  9. poj 3268 Silver Cow Party dijkstra基础题!!!入门
  10. 荒唐可笑的文言文编程语言
  11. 自定义阿里云OSS图片大小
  12. xp计算机启动检测硬盘,WindowsXP系统,每次开机都自动检测硬盘处理办法
  13. Android Widget 小部件(一) 简单实现
  14. 移动端ui设计,移动端界面
  15. 云虚拟主机+WordPress搭建个人博客详细内容
  16. 推荐算法(2):基于内容的推荐
  17. AI:大模型领域最新算法SOTA总结、人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略
  18. echarts 饼图 中间 画圈 + 文字
  19. excel的下载导出
  20. 熬夜怒肝,图解算法!BFS和DFS的直观解释

热门文章

  1. UE4_Lighting Scenarios
  2. Java笔试题之《流行的框架与新技术》
  3. PCL中分割_欧式分割(1)
  4. Android分包方案multidex
  5. Knockout js 绑定 radio 时,当绑定整形的时候,绑定不生效
  6. SQL语句中order_by_、group_by_、having的用法区别
  7. 国家卫健委:我国男女性成人平均身高分别为169.7厘米和158厘米
  8. 为什么Python是数据科学领域最受欢迎的语言
  9. 谷歌为何能持续创新?工程经理亲自揭秘“工程师文化”
  10. 苹果证实收购Drive.ai自动驾驶汽车初创公司