私はbc
bash スクリプトから使用して、簡単で汚い BigInteger 数学を実行していますが、スケールを上げると、行が分割され始めます。
pax> echo 'scale=200 ; 1 / 4' | bc
.2500000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000
pax> num="$(echo 'scale=200 ; 1 / 4' | bc )" ; echo $num
.2500000000000000000000000000000000000000000000000000000000000000000\ 00000 ...
分割せずに番号を取得できるように、これを防ぐにはどうすればよいですか? man ページにはこの動作が記載されていますが、変更するためのオプションは提供されていないようです。
実際には、誰かがより良い解決策を持っている場合に備えて、一歩下がってリクエストのソースをお伝えします. 次の行に沿って、値 2 -nに相当する C の文字列の配列が必要です。
static char *str[] = {
"1.00000000 ... 000", // 1/1 to 150 fractional places.
"0.50000000 ... 000", // 1/2
"0.25000000 ... 000", // 1/4
"0.12500000 ... 000", // 1/8
: : :
"0.00000000 ... 004", // 1/(2^256)
};
どの言語が配列を生成するかは気にしません。出力を取得して C コードにプラグインするだけです。ただし、精度は必要です。