Unix 在bc中除法时如何获得十进制数?

Unix 在bc中除法时如何获得十进制数?,unix,bc,Unix,Bc,我需要“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 ty

我需要“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
时,您可以通过使用
-l
选项(该选项会自动将
scale
设置为20,并定义多个数学函数)来避免手动设置
scale
。您在1分钟内回答得非常好。你真是个半神半神。@EhevuTov纯粹是运气;在你发布这个问题后不久,我偶然发现了它,并且知道答案。@jwodder:谢谢!我知道
-l
选项(我一直认为它应该是“数学图书馆”的
-m
,但这是我的问题);我没有注意到刻度的自动设置。如果你调用
bc-l
,你可以写:
4*a(1)
,得到
3.14159265358979323844
,比355/113更接近π(虽然这对6dp很好,这对于很多目的来说都足够了)。如果你很容易被逗乐(或者在“社交距离”时感到无聊),然后,
355/113
在十进制扩展中确实有一个重复的数字模式,但该模式的长度为112位,从小数点后的
141
开始。设置
scale=350
(或
355
),您会发现重复模式是
14159292035398230088495575221238938053097345132743362831858407079646017699115044247761061946902654867256637168
。(有没有一个标准的Unix实用程序可以在不进行编程的情况下查找repeat?我不知道有哪一个。)