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> 是以下之一

十六進制

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

十進制

十進制表示法。如果未指定 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"