写点什么

数值计算: 精度、溢出、舍入

作者:西格玛
  • 2024-01-24
    上海
  • 本文字数:323 字

    阅读完需:约 1 分钟

  • 精确表示浮点数: BigDecimal

BigDecimal 的 Double 入参的构造方法存在精度丢失问题,需要使用 String 入参的构造方法或者 BigDecimal.valueOf 方法进行初始化;

浮点数精确计算,参与计算的各种数值需使用 BigDecimal,所涉及的计算都要通过 BigDecimal 方法进行,因为任何一个环节出现精度损失,最后的计算结果可能都会出现误差。

对于浮点数的格式化, String.format 的使用的是四舍五入,而 DecimalFormat 能明确指定舍入方式。

  • 数值计算的溢出

数值运算需要注意溢出问题,由于溢出后不会存在异常抛出,会导致最后的计算结果不符合预期。但是我们可以通过考虑使用 Math.xxxExact 方法进行避免,因为其在溢出时能抛出异常,涉及大数运算时可以使用 BigInteger 类。

用户头像

西格玛

关注

还未添加个人签名 2020-07-30 加入

还未添加个人简介

评论

发布
暂无评论
数值计算: 精度、溢出、舍入_西格玛_InfoQ写作社区