如何使用可接受的误差范围检查两位小数的相等性

Şaf*_*Gür 6 .net c# math decimal

我有两位小数:

var first = 1.567m;
var second = 1.568m;
var areEqual = first == second; // false
Run Code Online (Sandbox Code Playgroud)

我有一个可接受的误差范围; 是的0.010.
所以我需要的是一个Check方法:

Check(first: 1.567m, second: 1.577m, margin: 0.010m); // true
Check(first: 1.567m, second: 1.578m, margin: 0.010m); // false
Check(first: 1.567m, second: 1.578m, margin: 0.011m); // true
Run Code Online (Sandbox Code Playgroud)

我该怎么写呢?

SLa*_*aks 18

if (Math.Abs(first - second) <= margin)
Run Code Online (Sandbox Code Playgroud)

  • `public static bool Check(decimal first, decimal second, decimal margin) { return Math.Abs​​(first - second) &lt;= margin; }` (2认同)