浮点数计算函数

这一节的所有函数,只有在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) - 浮点数计算函数相关推荐

  1. Vim技能修炼教程(10) - 代码跳转

    程序员功能 前面我们用了5讲的篇幅来讲基本编辑的基本功:第4讲是基本操作,第5讲是操作符,第6讲行编辑ex命令,第7讲可视模式,第8讲多窗口,第9讲缓冲区和标签页. 从这一讲开始,我们从通用功能向程序 ...

  2. PHP浮点数计算函数不四舍五入

    PHP浮点数计算函数不四舍五入 之前做统计模块时,遇到PHP计算精度的问题,比如: $a = 2586; $b = 2585.98;var_dump($a-$b); //期望的结果是:float(0. ...

  3. datatables 一列显示两个字段的数据_【tableau入门教程16】计算字段

    有时数据表中的原始维度和度量并不满足我们的需求,因此可通过计算字段功能,利用各种函数新建字段. 创建字段步骤 1.在侧栏 创建计算字段 2.拖曳字段到输入框或是输入部分字段名称选择字段,当输入框下面显 ...

  4. Python ln_Python入门教程(三):史上最全的Numpy计算函数总结,建议收藏!

    点击上方 蓝字 关注我们 Numpy提供了灵活的.静态类型的.可编译的程序接口口来优化数组的计算,也被称作向量操作,因此在Python数据科学界Numpy显得尤为重要.Numpy的向量操作是通过通用函 ...

  5. python乘法表运算_Python入门教程(三):史上最全的Numpy计算函数总结,建议收藏!...

    点击上方 蓝字 关注我们 Numpy提供了灵活的.静态类型的.可编译的程序接口口来优化数组的计算,也被称作向量操作,因此在Python数据科学界Numpy显得尤为重要.Numpy的向量操作是通过通用函 ...

  6. 计算机动漫与游戏制作与影视,中职中专计算机动漫与游戏制作专业系列教材·动画与影视后期制作:After Effects CS4技能应用教程...

    中职中专计算机动漫与游戏制作专业系列教材·动画与影视后期制作:After Effects CS4技能应用教程 语音 编辑 锁定 讨论 上传视频 <中职中专计算机动漫与游戏制作专业系列教材·动画与 ...

  7. 计算机表格计算总积分,Excel函数教程: 根据条件计算成绩表-excel技巧-电脑技巧收藏家...

    Excel函数教程: 根据条件计算成绩表 (三)根据条件计算值 在了解了IF函数的使用方法后,我们再来看看与之类似的Excel提供的可根据某一条件来分析数据的其他函数.例如,如果要计算单元格区域中某个 ...

  8. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数014,tuple,元组

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数014,tuple,元组 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号"**&q ...

  9. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数011,ocr,字符识别

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数011,ocr,字符识别 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号"**&q ...

最新文章

  1. 【转】Linux查看文件编码格式及文件编码转换
  2. 《系统集成项目管理工程师》必背100个知识点-97信息系统生命周期
  3. 经典C语言程序100例之八一
  4. iOS开发网络篇—网络请求(HTTP协议)小结(转)
  5. ie11上vue中使用elementui的input框无法输入中文
  6. RPOPLPUSH用法(转)
  7. PHP 利用Mail_MimeDecode类提取邮件信息
  8. 给Teams消息附加图片的三种方式
  9. Github Pages + Jekyll 独立博客一小时快速搭建上线指南
  10. 浅谈Java回调机制
  11. 企业之haproxy
  12. mysql 原来用的引擎_MySQL 的常用引擎
  13. 怎么理解知行之桥EDI系统的端口?
  14. 餐饮营销策划案例合集(共18份)
  15. 启动react-native报错 Unrecognized font family 'Ionicons'
  16. 计算机温度压力测试,整机性能与温度压力测试
  17. ORACLE11g数据库安装-刘建-专题视频课程
  18. 有了这些好看的流程图模板,你也可以画出漂亮的流程图
  19. dubbokeeper-moniter部署指南
  20. 计算机硬件故障与软件故障,电脑的故障分硬件故障与软件故障的两大类

热门文章

  1. bert模型训练的两种方式
  2. vim进阶之202007命令记录
  3. Pool多进程的加速
  4. php使用redis持久化,Redis持久化完整版本
  5. 百练OJ:2388:寻找中位数
  6. 百练OJ:2943:小白鼠排队
  7. 编程实现有关SMS4的2个程序之——编程实现线性变换模块
  8. 【项目管理】项目经理 总监 总经理不同优秀特质
  9. 需求分析中应该注意的问题
  10. JavaScript 开发10个实用技巧