我正在使用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 ...
我该如何阻止这种情况发生,以便我可以在没有任何拆分的情况下获得号码?手册页记录了这种行为,但似乎没有提供任何更改它的选项。
实际上,我会退后一步告诉你请求的来源,以防有人有更好的解决方案。我需要一个 C 中的字符串数组,相当于值 2 -n,如下所示:
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 代码中。但是,我确实需要准确性。