我目前正在使用各种资源来学习C#,其中一本名为“简而言之C#”的书。
该书的第37页:
实数舍入错误
float
和double
内部表示以2为底的数字。因此,仅
精确表示以2为底的数字。实际上,这意味着
具有分数部分的大多数文字(以10为底)将无法精确表示。例如:
float tenth = 0.1f; // Not quite 0.1
float one = 1f;
Console.WriteLine (one - tenth * 10f); // -1.490116E-08
但是,我无法复制它。在我的情况下,Console.WriteLine的输出正好是0。我有点困惑..难道书中给出的示例不是要被复制并仅出于解释的目的吗?还是其他?
我将Visual Studio 2017与Microsoft .NET Framework 4.7一起使用。
更新: Screenshot
我在控制台应用程序以及C#交互式窗口中尝试过。在这两种情况下,答案均为0。