linux BC命令列計算器

2021-09-08 11:16:41 字數 2520 閱讀 7020

1. 基本使用:

$ bc <<< 5*4

20$ bc <<< 5+4

9$ bc <<< 5-4

1

或者

$ echo "5*4" | bc

20$ echo "5+4" | bc

9$ echo "5-4" | bc

1

也能夠把算式寫到檔案中面。然後一次計算。

$ cat calcfile 

5+56+7

$ bc < calcfile

1013

也能夠使用here 命令:

$ bc << here

> 1+4

> 4-1

> 2*4

> here53

8

$ echo "5-4;last+6" | bc

17

last 也能夠用 點號取代:

$ echo "5-4;.+6" | bc

17

2. 浮點數運算:

能夠使用scale指定小數點之後的位數(默覺得0,即整數)

$ echo "sqrt(10)" | bc

3$ echo "scale=1;sqrt(10)" | bc

3.1$ echo "scale=10;sqrt(10)" | bc

3.1622776601

有時候得不到指定的位數:

$ echo "scale=10; 1.25*9" | bc

11.25

此時,能夠改動為:

$ echo "scale=10; 1.25*9/1" | bc

11.2500000000

3. 數制轉換:

能夠使用變數 ibase表示轉換前數字的數制;obase表示轉換後數字的數制

$ echo 'obase=16;128' | bc

80

$ echo 'ibase=16;obase=a;80' | bc

128

$ echo 'obase=2;128' | bc

10000000

$ echo 'ibase=2;obase=a;10000000' | bc

128

$ echo "obase=10;ibase=16;80" | bc

128

4. 指數運算:

$ echo "5^5" | bc

3125

$ echo "(5^5)^5" | bc

298023223876953125

記得第乙個指數運算的結果要加入括號。

5. 基於函式庫的運算

bc支援下面函式:

s(x): 正弦函式(x為弧度)

c(x): 余弦函式(x為弧度)

a(x): 反正切函式(結果為弧度)

l(x):  自然對數函式

e(x): 以e為底的指數函式

j(n,x):  貝賽爾函式

此時。bc要加上 -l 引數 (此時。  scale 為20)

計算 log1.5(2) (以 1.5為底,2的對數):

$ echo "l(2)/l(1.5)" | bc -l

1.70951129135145477699

也能夠用 awk命令:

$ awk 'begin '

1.709511291

6. 指令碼函式程式設計:

$ cat calc_prog 

print "enter a number a\n"; a = read()

print "enter another number b\n"; b = read()

if (b == a)

if (a < b)

if (a > b)

$ bc -l calc_prog

7. 指令碼模擬計算器:

$ cat calc.sh 

#!/bin/bash

bc << end

scale=2

$@end

$ ./test.sh  1+2

3

參考:

命令列 計算器

using system using system.collections.generic using system.text namespace calc console.writeline 請再次輸入乙個數字。ls s console.readline trim li s convert.toi...

Linux bc命令實現數學計算器

bash shell 內建了對整數運算的支援,但是並不支援浮點運算,而 linux bc 命令可以很方便的進行浮點運算,當然整數運算也不再話下。bc 甚至可以稱得上是一種程式語言了,它支援變數 陣列 輸入輸出 分支結構 迴圈結構 函式等基本的程式設計元素,所以 linux 手冊中是這樣來描述 bc ...

linux命令列計算器

下面總結linux下的三個命令,來介紹一下linux下的計算方法 1 bc bc在預設的情況下是個互動式的指 令。在bc工作環境下,可以使用以下計算符號 加法 減法 乘法 除法 指數 餘數 一行輸入多個計算,用 相隔 quit 退出 scale 3 設小數字 不進行互動而直接計算出結果 echo s...