dc

任意精度計算器

說明

dc 是一款逆波蘭表達式計算器,支持無限制精度的算術運算。它還允許您定義和調用宏。通常,dc從標準輸入讀取,也可以通過參數傳入文件來求值。

語法

1dc [選項] [文件...]

選項

1-e, --expression=EXPR    # 評估表達式
2-f, --file=FILE          # 評估文件內容
3-h, --help               # 顯示此幫助並退出
4-V, --version            # 輸出版本信息並退出
 1p 打印堆棧頂部的值並以換行符結束語句。
 2n 打印堆棧頂部的值並以空語句結束行。
 3f 打印整個堆棧,不做任何更改。
 4P 從棧頂彈出值。
 5c 清除堆棧。
 6d 複製頂部值並將其推入主堆棧。
 7r 反轉堆棧中頂部兩個元素的順序。
 8Z 從堆棧中彈出值,計算其中的位數並壓入該數字。
 9X 從堆棧中彈出值,計算其中的小數位數並壓入該數字。
10z 將堆棧長度推入堆棧。
11i 從堆棧中彈出值並將其用作輸入基數。
12o 從堆棧中彈出值並將其用作輸出基數。
13k 從堆棧中彈出值並使用它來設置精度。
14I 將輸入基數的值推入堆棧。
15O 將輸出基數的值壓入堆棧
16K 將精度值壓入堆棧。

示例

下面是 dc 命令在命令行完成的計算 10 * 10 得出結果 100,並推出的過程

1$ dc        
2
310          # 1. 輸入數字10
410          # 2. 輸入數字10
5*           # 3. 輸入運算類型*表示乘
6p           # 4. 輸入p得到計算結果
7100
8q           # 5. 輸入 q 退出 dc

示例顯示在命令行結果 509

1$ dc --expression="50 10 * 9 + p"
2509

支持的運算

+ 從堆棧中彈出兩個值,將它們相加,然後壓棧結果。

- 彈出兩個值,從彈出的第二個值中減去彈出的第一個值,並壓棧結果。

* 彈出兩個值,將它們相乘,然後壓棧結果。結果中分數位數取決於當前精度值和兩個參數中的分數位數。

/ 彈出兩個值,將彈出的第二個值與彈出的第一個值相除,然後推送結果。分數位數由精度值指定。

% 彈出兩個值,計算/命令將執行的除法的剩餘部分,並推送該值。計算的值與序列 Sd dld/Ld*- 計算的值相同。

~ 彈出兩個值,將彈出的第二個值與彈出的第一個值相除。首先推送商,然後推送餘數。除法中使用的小數位數由精度值指定。

(序列 SdSn lnld/lnld% 也可以完成此功能,但錯誤檢查略有不同。)

^ 使用彈出的第一個值作爲指數,第二個值作爲基數,彈出兩個值並進行冪運算。忽略指數的分數部分。

| 彈出三個值並計算模冪。 彈出的第一個值用作約簡模數; 這個值必須是一個非零數字,並且應該是一個整數。 彈出的第二個用作指數; 該值必須是非負數,並且該指數的任何小數部分都將被忽略。 彈出的第三個值是取冪的基數,它應該是一個整數。 對於小整數,這類似於序列 Sm^Lm%,但與 ^ 不同的是,此命令適用於任意大的指數。

v 彈出一個值,計算其平方根,然後壓棧它。精度值的最大值和參數的精度用於確定結果中的小數位數。 來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: