C# 错误的减法? 12.345 - 12 = 0.345000000000001

标签 c# numbers floating-point floating-accuracy subtraction

<分区>

我是 C# 初学者,我正在处理 float 。我需要在这两个数字之间做减法,但它不起作用。我知道它是由 float 引起的,但我该如何解决它,如果你这么好,你能解释一下为什么会这样吗?提前致谢。

最佳答案

考虑使用小数而不是 float :

// Instead of this...
float a = 12.345F;
float b = 12;
float c = a - b;

// Use this: 
decimal d = 12.345M;
decimal e = 12;
decimal f = d - e;

Jon Skeet 在这个答案中很好地解释了两种类型之间的差异:https://stackoverflow.com/a/618596/446681

关于C# 错误的减法? 12.345 - 12 = 0.345000000000001,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890477/

相关文章:

javascript - 抓取网页并获取所有动态 Javascript 链接

c# - 如何在 C# 代码隐藏中将 PrintPreviewDialog 纸张大小设置为 a5?

c# - String.Compare 答案随着字符添加到字符串末尾而变化

php - 确定文件是否超过 X 行?

c# - 参数值类型为C#的C#中的交换方法是否无效?

php - 生成两个在 PHP 中不相等的数字

c - 如何在 C 中使用按位和逻辑运算符将无符号数乘以四

c++ - printf 的浮点格式标志 (%f) 仅适用于英文数字格式

c# - 在 ARM 上使用 Span<T> 给出 "System.DataMisalignedException:"

java - 如何处理大于 Double.MAX_VALUE 的数字