c# - float 错误计算

标签 c#

<分区>

结果一定是 806603.77 但为什么我得到 806603.8 ?

float a = 855000.00f;
float b = 48396.23f;

float res = a - b;
Console.WriteLine(res);
Console.ReadKey();

最佳答案

你应该使用 decimal相反因为 float具有 32 位7 位 精度,这就是结果不同的原因,另一方面 decimal 具有 128 位,精度为 28-29 位

decimal a = 855000.00M;
decimal b = 48396.23M;

decimal res = a - b;
Console.WriteLine(res);
Console.ReadKey();

输出:806603.77

关于c# - float 错误计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429487/

相关文章:

c# - 此 BackgroundWorker 当前正忙,无法同时运行多个任务

c# - Toast 不从 C# 中的控制台应用程序显示

c# - Windows Phone 8 - 下载 html 代码不等待

C# WPF 获取错误 - System.InvalidOperationException :

c# - WP8 - Facebook 登录问题

C# LINQ "inner join"集合

c# - 在方法中转换为未知类型

c# - 在 ASP.NET MVC 中构建多 View 布局的首选方法?

c# - 如何使用自定义 IXmlSerializable 作为 XmlAttribute?

c# - 通过 C# 应用程序创建 Outlook 电子邮件草稿