zoukankan      html  css  js  c++  java
  • 浮点型数据转整型的丢失精度问题(C++)

    如下代码:http://ideone.com/xcgHgw

    #include <iostream>
    using namespace std;
    
    int main() {
        // your code goes here
        int i = 0;
        i = 9.0 * 0.6 + 0.6;
        cout << i << endl;
        
        i = 9.0 * 0.6 + 0.6;
        cout << i << endl;
        
        i = (double)(9.0 * 0.6 + 0.6);
        cout << i << endl;
        
        cout << (double)(9.0 * 0.6 + 0.6);
        return 0;
    }

    本意是打印4个6;

    但是打印结果是:

    5

    5

    5

    6;

    原因是

    9.0 * 0.6的返回值很有可能是5.3999...,+ 0.6后是5.9999...;强制转换为int型后是5;

    解决方案是:

    不要将double型的数据赋给整型,否则可能出现与初衷不符。

  • 相关阅读:
    Python与数据库
    初识matplotlib
    Jquery--实现轮播图
    Juery入门2
    CSS布局方式
    Jquery入门一
    html-DOM了解
    jquery --入门
    JS练习
    kettle 报错汇总
  • 原文地址:https://www.cnblogs.com/xiaochou/p/double2int.html
Copyright © 2011-2022 走看看