ScreenToGif/Util/MathHelper.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
namespace ScreenToGif.Util
{
public static class MathHelper
{
public static bool NearlyEquals(this float a, float b, float epsilon = 0.0001F)
{
var absA = Math.Abs(a);
var absB = Math.Abs(b);
var diff = Math.Abs(a - b);
if (a == b)
return true;
if (a == 0 || b == 0 || diff < float.Epsilon)
{
// a or b is zero or both are extremely close to it
// relative error is less meaningful here
return diff < epsilon;
}
// use relative error
return diff / (absA + absB) < epsilon;
}
public static bool NearlyEquals(this double a, double b, double epsilon = 0.0001D)
{
var absA = Math.Abs(a);
var absB = Math.Abs(b);
var diff = Math.Abs(a - b);
if (a == b)
{ // shortcut, handles infinities
return true;
}
if (a == 0 || b == 0 || diff < double.Epsilon)
{
// a or b is zero or both are extremely close to it
// relative error is less meaningful here
return diff < epsilon;
}
// use relative error
return diff / (absA + absB) < epsilon;
}
public static bool NearlyEquals(this double a, int absB, double epsilon = 0.0001D)
{
var absA = Math.Abs(a);
var diff = Math.Abs(a - absB);
if (a == absB)
{ // shortcut, handles infinities
return true;
}
if (a == 0 || absB == 0 || diff < double.Epsilon)
{
后面还有 23 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
