Vim技能修炼教程(16)
来源:互联网 发布:新疆广电网络缴费方式 编辑:程序博客网 时间:2024/06/07 16:03
浮点数计算函数
这一节的所有函数,只有在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:arg echo "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.06float2nr:2round:2.0ceil:3.0floor:2.0trunc:2.0
我们再试试122.667:
Orginal value: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就是简单去掉小数部分。
阅读全文
0 0
- Vim技能修炼教程(16)
- Vim技能修炼教程(1)
- Vim技能修炼教程(2)
- Vim技能修炼教程(3)
- Vim技能修炼教程(4)
- Vim技能修炼教程(4)
- Vim技能修炼教程(5)
- Vim技能修炼教程(6)
- Vim技能修炼教程(7)
- Vim技能修炼教程(8)
- Vim技能修炼教程(9)
- Vim技能修炼教程(10)
- Vim技能修炼教程(11)
- Vim技能修炼教程(12)
- Vim技能修炼教程(13)
- Vim技能修炼教程(14)
- Vim技能修炼教程(15)
- Vim技能修炼教程(17)
- 1503: [NOI2004]郁闷的出纳员
- stl中容器以几倍的速度增长
- 我的第一个minigui程序
- 移动端数据接口返回数据格式(下)
- iterm2 主题配置
- Vim技能修炼教程(16)
- Windows7下安装配置TestLink
- FOJ--英语考试(最小生成树)
- SpringBoot_集成MyBatis(XML方式)
- 解决maven出现Missing artifact com.manyit:javaoa-base:war:1.3.0-SNAPSHOT的问题
- 直接插入排序算法-不设置哨兵版
- IntelliJ IDEA2017.1.4正式版gradle依赖总是报错问题之一
- 搜索引擎相关架构和技术点梳理
- ListPopupWindow,PopupMenu