コガネブログ

平日更新を目標にUnityやC#などのゲーム開発アレコレを書いていきます

【C#】float型を安全に比較する拡張メソッド

ソースコード

using UnityEngine;

/// <summary>
/// float 型の拡張メソッドを管理するクラス
/// </summary>
public static class FloatExtensions
{
    /// <summary>
    /// 指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します
    /// </summary>
    public static bool SafeEquals
    (
        this float self , 
        float      obj  , 
        float      threshold = 0.001f
    )
    {
        return Mathf.Abs(self - obj) <= threshold;
    }
}

使い方

float a = 1f;
float b = 0f;
for (int i = 0; i < 1000; i++)
{
    b += 0.001f;
}
a.SafeEquals(b);