• 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: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.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就是简单去掉小数部分。

    用云栖社区APP,舒服~

    原文链接

  • 相关阅读:
    web框架学习
    css上
    数据库
    线程
    反射以及部分内置方法
    排序函数sort() 和sorted() 之介绍
    类的绑定方法
    继承
    面向对象和类
    混淆矩阵、准确率、召回率
  • 原文地址:https://www.cnblogs.com/jzy996492849/p/7205726.html
Copyright © 2020-2023  润新知