真的不适合花钱吗?

我总是在C#中告诉您double类型的变量不适合钱。所有奇怪的事情都可能发生。但是我似乎无法创建一个示例来演示其中的一些问题。谁能提供这样的例子?


(编辑;该帖子最初被标记为C#;一些回复涉及的具体细节decimal,因此意味着System.Decimal)。


(编辑2:我是专门要求一些C#代码的,所以我不认为这仅与语言无关)


慕田峪4524236
浏览 255回答 3
3回答

慕森王

非常非常不合适。使用十进制。double x = 3.65, y = 0.05, z = 3.7;Console.WriteLine((x + y) == z); // false(例如,从Jon的页面在这里 -推荐阅读;-p)

泛舟湖上清波郎朗

舍入会有效地导致奇数错误。此外,与精确值进行比较非常棘手-您通常需要应用某种epsilon来检查“接近”特定值的实际值。这是一个具体的例子:using System;class Test{    static void Main()    {        double x = 0.1;        double y = x + x + x;        Console.WriteLine(y == 0.3); // Prints False    }}
打开App,查看更多内容
随时随地看视频慕课网APP