2016-08-02 56 views
0

我想知道什么是我的问题,当我尝试打印一些浮点值,例如,在这个简单的程序:打印浮点值有什么问题?

float n = 127.998 ; 
printf("%f",n); 

执行得到:127.998001

  • 那么,为什么我有这个数的附加回来?

attached image

+0

另请参阅http://stackoverflow.com/questions/12635537/c-浮点数精确度 – Ari0nhh

+2

强制性[每位计算机科学家应了解的浮点算术知识](http://docs.oracle.com/ CD/E19957-01/806-3568/ncg_goldberg.html) – Caw

回答

0

某些值不能准确地存储在浮点数据类型。我们不能保证您的float n = 127.998实际上将被存储为127.998。对于无法在浮点类型中精确表示的值,取而代之的是与其最接近的值,这就是您所得到的值。