舍入误差

来源:互联网 发布:void在c语言中的意思 编辑:程序博客网 时间:2024/04/29 05:31

因为我们设置精度为16位,每16位以上的数字。但是正如你所看到的这些数字肯定精确到16位数

浮点型的变量通常有一个精度约7位有效数字(这就是为什么一切后,许多数字在我上面的回答是垃圾)。double类型的变量通常有大约16位有效数字精度。double类型的变量命名为因为他们提供一个浮动的精度约一倍

现在让我们考虑一个非常大的数字

1
2
3
4
5
6
7
8
9
#include <iostream>
 
intmain()
{
    usingnamespace std;
    floatfValue = 123456789.0f;
    cout << fValue << endl;
    return0;
}

23457e + 008。1.23457×10 ^ 8,这是123457000。请注意,我们已经失去了精度也在这里

因此必须使用时需要比浮点数变量可以容纳更多的精密小心

舍入误差

其中一个原因浮点数字可以棘手的是,由于非显而易见的二进制和十进制之间的差异(基地10)数。在正常的小数,分数1 /第三是无限小数的顺序:0 333333333……同样,考虑分数1 / 10。在十进制中,这是很容易的为0.1,和我们所想的0.1作为一个容易表示数。然而在二元0.1是由无限序列表示0.0001100110011001

你可以看到下面的程序的影响

1
2
3
4
5
6
7
8
#include <iomanip>
intmain()
{
    usingnamespace std;
    cout << setprecision(17);
    doubledValue = 0.1;
    cout << dValue << endl;
}



0 0
原创粉丝点击