物理量クラスを作るにあたって、単位の換算をしたい。と言うか、そもそもこれを自動で行うのが目的だった。
換算のうち、ちょっと特殊な立ち位置にあるのが温度、ケルビンとセルシウス度の換算。で、これで悩んでいる。
物理量 - Wikipedia とか理科年表にも書いてあったけど、物理量は数値と単位の積というのが原則なんだが、セルシウス度はこの例外になっていると思う。
たとえば絶対0度をセルシウス度に換算することを考えても、 とは書けず、 となる訳だから。
で、こういう温度の演算をどう考えるかで悩んでいる。たとえば 30℃ + 20℃ = 50℃ という足し算は、ケルビンに換算すると 303.15 K + 293.15 K = 596.7 K だから結果が違ってしまう。引き算だったら30℃ - 20℃ = 10℃ で 303.15 K - 293.15 K = 10 K だから辻褄は合う。掛け算、割り算は...? もう訳分からん。
あ、温度と温度差を分けて考えたらいいのか? ってことは、温度の次元には両者を区別するためのフラグ変数が必要?