多倍長計算
Juliaで多倍長の小数演算.
そう!BigFloat
!
a = BigFloat(0.1)
って書いてたけど, こうではなく
a = big"0.1"
って書かねばならんらしい.
BigFloat()
っていう関数に渡す前の数字がFloat64
で先に読み込まれてしまい, ずれた値が返ってきてしまう.
ただ, big""
っていう表記には数字にしか使えないっぽく,
b = big"sqrt(2)"
というのは許されない.
c = big"2" b = sqrt(b)
とか
b = sqrt(big"2")
と書けばよい.
(追記)Float64をBigFloat関数に突っ込むのと同じだ…
big"0.1"+sqrt(big"2") = 1.514213562373095048801688724209698078569671875376948073176679737990732478462105 0.1+sqrt(big"2") = 1.514213562373095054352803847335480780687830215831049635676679737990732478462102 (参考)sqrt(2) = 1.4142135623730950488016887242096980785696718753769480731766797379907324…
意外と面倒そう…