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(): 简单截断小数点后面的数

我们来写个函数测试下它们的功能:

functionFloat2Number(arg)echo"Orginal value:"echoa:argecho"float2nr:"echofloat2nr(a:arg)echo"round:"echoround(a:arg)echo"ceil:"echoceil(a:arg)echo"floor:"echofloor(a:arg)echo"trunc:"echotrunc(a:arg)endfunction

我们先试试2.06:

Orginalvalue:2.06float2nr:2round:2.0ceil:3.0floor:2.0trunc:2.0

我们再试试122.667:

Orginalvalue:122.667float2nr:122round:123.0ceil:123.0floor:122.0trunc:122.0

我们再看一个负数:-9.08

Orginal value:-9.08float2nr:-9round:-9.0ceil:-9.0floor:-10.0trunc:-9.0

最后来一个五入的负数:

Orginal value:-65.96float2nr:-65round:-66.0ceil:-65.0floor:-66.0trunc:-65.0

我们总结一下:

除了float2nr,其它所有截断的结果还是浮点数

float2nr的策略跟trunc一致,也就是说,如果要想四舍五入的话,先做round再float2nr.

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

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

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

trunc就是简单去掉小数部分。

Vim技能修炼教程(16) - 浮点数计算函数_第1张图片

用云栖社区APP,舒服~

原文链接

你可能感兴趣的:(Vim技能修炼教程(16) - 浮点数计算函数)