math

計算數學表達式。

math(EXPR <variable> "<expression>" [OUTPUT_FORMAT <format>])

計算數學<expression>,並將結果值設定給 <variable>。表達式的結果必須能以 64 位元帶號整數表示。浮點數輸入無效,例如 1.1 * 10。非整數結果,例如 3 / 2,會被截斷。

數學表達式必須以字串形式給定(即用雙引號括起來)。一個例子是 "5 * (10 + 13)"。支援的運算子有 +-*/%|&^~<<>>(...);它們的含義與 C 程式碼中相同。

在 3.13 版本中新增: 當以 0x 作為前綴時,會如同 C 程式碼般識別十六進位數字。

在 3.13 版本中新增: 結果會根據 OUTPUT_FORMAT 選項格式化,其中 <format> 是下列其中之一:

HEXADECIMAL

十六進位表示法,如同 C 程式碼,即以 "0x" 開頭。

DECIMAL

十進位表示法。如果沒有指定 OUTPUT_FORMAT 選項,也會使用此表示法。

例如

math(EXPR value "100 * 0xA" OUTPUT_FORMAT DECIMAL)      # value is set to "1000"
math(EXPR value "100 * 0xA" OUTPUT_FORMAT HEXADECIMAL)  # value is set to "0x3e8"