标签: bc

如何让bc(1)打印前导零?

我在Makefile中执行以下操作:

echo "0.1 + 0.1" | bc
Run Code Online (Sandbox Code Playgroud)

(在实际文件中,数字是动态的,当然)

它打印.2但我想要它打印0.2.

我想这样做而不诉诸,sed但我似乎无法找到如何bc打印零.或者bc只是不能这样做?

unix bash bc

57
推荐指数
5
解决办法
4万
查看次数

如何使用bc计算数字的对数?

这是我第一次使用bc.我想计算一个数字的对数(基数10).我怎么这样?

unix bc

45
推荐指数
3
解决办法
3万
查看次数

浮点导致Bash整数除法

我的服务器上有一个备份脚本,用于执行备份的cron作业,并向我发送备份文件的摘要,包括新备份文件的大小.作为脚本的一部分,我想将文件的最终大小除以(1024 ^ 3),以文件大小(以字节为单位)获取GB的文件大小.

由于bash没有浮点计算,我试图使用管道来获取结果,但是我对基本的例子感到困惑.

我试图将Pi的值设为一个比例,但是,

即使以下工作:

~ #bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
4/3
1.33333333333333333333
22/7
3.14285714285714285714
q
0
quit
Run Code Online (Sandbox Code Playgroud)

非交互式版本不起作用:

#echo $(( 22/7 )) | bc
3
Run Code Online (Sandbox Code Playgroud)

这有效:

#echo '22/7' | bc -l
3.14285714285714285714
Run Code Online (Sandbox Code Playgroud)

但我需要使用变量.所以它没有帮助,以下不起作用:

#a=22 ; b=7
#echo $(( a/b )) | bc -l
3
Run Code Online (Sandbox Code Playgroud)

我显然在Bash中使用变量的语法中缺少一些东西,并且可以使用一些关于我误解的"指针".

正如DigitalRoss所说,我可以使用以下内容:

#echo $a / $b | bc -l
3.14285714285714285714
Run Code Online (Sandbox Code Playgroud)

但是,我不能使用复杂的表达式,如:

#echo …
Run Code Online (Sandbox Code Playgroud)

bash bc

43
推荐指数
3
解决办法
7万
查看次数

如何让bc处理科学(又称指数)表示法中的数字?

bc 不喜欢用科学记数法表示的数字(又称指数表示法).

$ echo "3.1e1*2" | bc -l
(standard_in) 1: parse error
Run Code Online (Sandbox Code Playgroud)

但是我需要用它来处理用这种表示法表达的一些记录.有没有办法bc了解指数表示法?如果没有,我该怎么做才能将它们翻译成bc可以理解的格式?

bash numeric floating-accuracy bc

38
推荐指数
4
解决办法
4万
查看次数

如何在bc中划分时得到十进制数?

我需要'bc'来划分一个数字,不仅给我一个地板,还给我剩下的.例如,如果我做"5/2",'bc'给我'2'.我真的想要'2.5'之类的东西

也许这甚至不可能?

unix bc

27
推荐指数
1
解决办法
2万
查看次数

如何将输出分配给shellscript变量?

如何将此结果分配给shell变量?

输入:

echo '1+1' | bc -l

输出:

2

尝试:

(没用)

#!bin/sh
a=echo '1+1' | bc -l
echo $a
Run Code Online (Sandbox Code Playgroud)

shell pipe bc

23
推荐指数
1
解决办法
8万
查看次数

bc忽略了比例选项

我无法弄清楚为什么bc工具有时会忽略缩放选项.

这是一个例子:

> echo 'scale=2; 2.777 - 1.4744' | bc
1.3026
Run Code Online (Sandbox Code Playgroud)

预期结果是:

1.30
Run Code Online (Sandbox Code Playgroud)

附加信息:

> bash --version
GNU bash, version 2.05b.0(1)-release (x86_64-suse-linux)
Copyright (C) 2002 Free Software Foundation, Inc.
> bc --version
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)

linux bash bc

21
推荐指数
2
解决办法
3万
查看次数

bc截断浮点数

如何使用截断浮点数 bc

例如,如果我这样做

echo '4.2-1.3' | bc
Run Code Online (Sandbox Code Playgroud)

它输出2.9我如何截断/使用楼层来获取2

linux bash bc

17
推荐指数
4
解决办法
1万
查看次数

使decimal.Decimal成为Python中的默认数值类型

有什么方法可以生成decimal.Decimal是Python中所有数值的默认类型吗?我希望能够以类似于bc和dc程序的方式使用Python,而不必为每个数字调用decimal.Decimal(...).

编辑:对于没有经验的人:bc.

编辑2:谢谢你的标记模块..

python interpreter decimal bc dc

15
推荐指数
2
解决办法
1414
查看次数

如何使用Bash命令计算pi

我正在学习bash脚本.在探索数学函数时,我遇到了一个计算pi值的命令.

seq -f '4/%g' 1 2 99999 | paste -sd-+ | bc -l
Run Code Online (Sandbox Code Playgroud)

虽然我理解基本的seq命令是如何工作的,但我无法理解上述命令是如何工作的.任何人都可以澄清它是如何工作的.

bash shell bc seq

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

bc ×10

bash ×6

unix ×3

linux ×2

shell ×2

dc ×1

decimal ×1

floating-accuracy ×1

interpreter ×1

numeric ×1

pipe ×1

python ×1

seq ×1