0.9999999の恐怖
主にUnityについてのお話
バージョンは2017.4.1
0.9999999について
Unityでプロパティにアクセスした時やインスペクタで時々出てくる
0.9999999 == 1なのか?
結論から言うと1ではない
0.9999999… == 1であり0.9999999 != 1である
実例
UnityのスクロールビューのNormalizedPosition(スクロール位置)が1以上、つまり最大になったか判定をしようとした
if([ScrollRect].horizontalNormalizedPosition >= 1)
{
//何か処理
}
スクロールが1で止まる時と0.9999999で止まる時があった
まとめ
Unity的には0.9999999は1と認識している?
プログラム的には間違っているので、floatの判定をする時は気をつけたいところ