Vim技能修炼教程(16) - 浮点数计算函数
生活随笔
收集整理的這篇文章主要介紹了
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(): 簡單截斷小數點后面的數
我們來寫個函數測試下它們的功能:
function Float2Number(arg)echo "Orginal value:"echo a:argecho "float2nr:"echo float2nr(a:arg)echo "round:"echo round(a:arg)echo "ceil:"echo ceil(a:arg)echo "floor:"echo floor(a:arg)echo "trunc:"echo trunc(a:arg) endfunction我們先試試2.06:
Orginal value: 2.06 float2nr: 2 round: 2.0 ceil: 3.0 floor: 2.0 trunc: 2.0我們再試試122.667:
Orginal value: 122.667 float2nr: 122 round: 123.0 ceil: 123.0 floor: 122.0 trunc: 122.0我們再看一個負數:-9.08
Orginal value: -9.08 float2nr: -9 round: -9.0 ceil: -9.0 floor: -10.0 trunc: -9.0最后來一個五入的負數:
Orginal value: -65.96 float2nr: -65 round: -66.0 ceil: -65.0 floor: -66.0 trunc: -65.0我們總結一下:
- 除了float2nr,其它所有截斷的結果還是浮點數
- float2nr的策略跟trunc一致,也就是說,如果要想四舍五入的話,先做round再float2nr.
- round是四舍五入,不管正負,都是四舍五入。
- ceil取大于等于它的最小整數。
- floor取小于等于它的最大整數。
- trunc就是簡單去掉小數部分。
總結
以上是生活随笔為你收集整理的Vim技能修炼教程(16) - 浮点数计算函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AliSQL 20170716版本发布
- 下一篇: zookeeper 运维