zoukankan      html  css  js  c++  java
  • android开发36.66浮点数计算精度问题

    • 在开发中金额计算是常见的,今天偶尔发现一个挺奇怪的浮点数计算精度问题

      36.66 x 100 取整后得到 3666 ???

      我也理所当然地认为是3666,然后就直接使用Int接收结果,然而结果是3665 。

      然后发现36.66 x 100的结果是3665.99999999995

      使用Int接收当然是3665了。

    • 知道原因是浮点数计算精度问题了,使用四舍五入即可得到正确结果。即用roundToInt方法而不是toInt方法转化接收结果(kotlin语法)

    • 好奇的是,试了其他的比如16.66,26.66等.66数字 乘以100直接toInt转为Int后结果是预期正确的,唯有36.66乘以100直接toInt得到3665。神奇的计算精度问题,具体原因可能要深入二进制世界去了。。。

  • 相关阅读:
    Tarjan 的一些板子
    对 SAM 和 PAM 的一点理解
    一些敲可爱的数论板子
    异常
    面向对象编程
    JAVA数组
    JAVA方法
    JAVA流程控制
    JAVA基础
    JAVA入门
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/14414618.html
Copyright © 2011-2022 走看看