ColdFusionでは変数の型を意識することはないのですが、
Javaとの連携がしやすいため、
実数はfloatかdoubleを使用する場合があります。
最近まで
「ほかのところでfloat使っているから僕も使おう」
などと安易に考えて
誤差で悩まされたことがありました。
検索してみると、doubleを使ったほうがいいという意見が多いですね。
これからは使えるならdoubleを使うことにします。
floatとdoubleの違いがわかるプログラムを作成
<cfset a1 = 1/3> <cfset a2 = JavaCast("float", a1)> <cfset a3 = JavaCast("double", a1)> <cfset b1 = a1 + a1 + a1> <cfset b2 = a2 + a2 + a2> <cfset b3 = a3 + a3 + a3> <cfoutput> a1=#a1#<br> a2=#a2#<br> a3=#a3#<br> b1=#b1#<br> b2=#b2#<br> b3=#b3#<br> </cfoutput>
画面表示は以下のとおりです。
a1=0.333333333333
a2=0.33333334
a3=0.333333333333
b1=1
b2=1.0000000298
b3=1