结果中添加了奇怪的小数

Cee*_*esz -1 c# double decimal multiplication

C#在结果的末尾添加了一个小数,我的代码:

public static double CalcCompoundedInterest()
{
    return (1.1 * 1.1);
}
Run Code Online (Sandbox Code Playgroud)

结果:1.2100000000000002

有人知道为什么会这样吗?

小智 5

这不是C#问题,这是计算机处理小数值时的工作方式.

你看,1.1存储为浮点数,它使用IEEE 754标准以二进制编码.如果不向它们添加非常小的错误,则无法存储大多数小数.