秒未満の時間の取り扱い
何が問題か?
汎用的に基準となる単位が存在しない。
よく使われる基準単位
ミリ秒($ 1^{-3})
マイクロ秒($ 1^{-6})
ナノ秒($ 1^{-9})
ピコ秒($ 1^{-12})
1/n (nは任意)
状況によっては分数で表した方が望ましいようなケースも多々ある。
FPS(frame/second)
60fps は 1/60秒で、小数にすると 0.0166..(循環小数)
分数で表した時間を小数で表してしまうと、積算した時に誤差が累積してしまう。(誤差が特定方向にあるため)
1/60 * 60 = 1 だが、0.017 とミリ秒の精度にしてしまうと、0.017 * 60 = 1.02 になる。50秒後には1秒のズレができる計算になる。
浮動小数点数は精度が変動することに注意が必要。
その時間を何に使うかで精度の重要性が変わる。このため、精度を高くすべきか低くすべきかはアプリケーションに依存する。
秒未満の時間はカレンダーの影響を受けない。このため独立して考えることができる。
うるう秒の問題が絡んでくるが、ほとんどのアプリケーションでは気にする必要はないはず。