【发布时间】:2012-05-06 15:20:09
【问题描述】:
我需要 'bc' 来除一个数字,并且不仅给我地板,还给我余数。例如,如果我做 '5/2','bc' 会给我 '2'。我真的想要像'2.5'这样的东西
也许这根本不可能?
【问题讨论】:
我需要 'bc' 来除一个数字,并且不仅给我地板,还给我余数。例如,如果我做 '5/2','bc' 会给我 '2'。我真的想要像'2.5'这样的东西
也许这根本不可能?
【问题讨论】:
scale = 20
它设置小数位数。
$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
355/113
3
scale=20
355/113
3.14159292035398230088
quit
$
【讨论】:
bc 时手动设置 scale,方法是使用 -l 选项调用它(它会自动将 scale 设置为 20,并且还定义了几个数学函数)。
-l 选项(我永远认为应该是-m 用于'数学库',但这是我的问题);我没有注意到比例的自动设置。如果你调用 bc -l,你可以写:4*a(1) 并得到 3.14159265358979323844,比 355/113 更接近 π(虽然这对 6 dp 来说很好,这对于许多用途来说已经足够了)。
355/113 在小数扩展中确实有一个重复的数字模式,但该模式的长度为 112 位,从小数点后的141。设置scale = 350(或355?),你会发现重复模式是1415929203539823008849557522123893805309734513274336283185840707964601769911504424778761061946902654867256637168。 (有没有一个标准的 Unix 实用程序可以在不编程的情况下找到重复项?我不知道。)