天天看點

Vim技能修煉教程(16) - 浮點數計算函數

這一節的所有函數,隻有在vim編譯時支援了+float時才有效。

sin() : sine正弦函數

cos() : cosine餘弦函數

tan() : tangent正切函數

asin() : arc sine反正弦函數

acos() : arc cosine反餘弦函數

atan() : arc tangent反正切函數

atan2({x坐标},{y坐标}) : arc tangent反正切函數

sinh() : hyperbolic sine 雙曲正弦函數

cosh() : hyperbolic cosine雙曲餘弦函數

tanh() : hyperbolic tangent雙曲正切函數

這些函數基本上都是對應的c函數的封裝。比如對于雙曲正弦不熟悉的話,可以參看man sinh. 如果不了解atan2,可以man atan2.

abs(): 絕對值

fmod(): 浮點餘數

exp(): e的乘方

log(): 自然對數

log10(): 以10為底的對數

pow(): 階乘

sqrt(): 平方根,如果求負數的平方根,傳回nan.

isnan(): 判斷是否為nan。比如isnan(0.0/0.0)為真。

float2nr() : 将浮點數轉成整數。

round() : round off, 四舍五入

ceil(): round up, 上舍入

floor(): round down,下舍入

trunc(): 簡單截斷小數點後面的數

我們來寫個函數測試下它們的功能:

我們先試試2.06:

我們再試試122.667:

我們再看一個負數:-9.08

最後來一個五入的負數:

我們總結一下:

除了float2nr,其它所有截斷的結果還是浮點數

float2nr的政策跟trunc一緻,也就是說,如果要想四舍五入的話,先做round再float2nr.

round是四舍五入,不管正負,都是四舍五入。

ceil取大于等于它的最小整數。

floor取小于等于它的最大整數。

trunc就是簡單去掉小數部分。