みやびの備忘録

LaTeXとかjulia言語とか. 覚えておきたいことをつらつら書いています.

多倍長計算

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…

意外と面倒そう…