zoukankan      html  css  js  c++  java
  • Round,Fix,Int函数杂谈

    Round 函数
    返回按指定位数进行四舍五入的数值。

    Round(expression[, numdecimalplaces])

    参数
    Expression

    必选项。数值表达式 被四舍五入。

    Numdecimalplaces

    可选项。数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数。

    说明
    下面的示例利用 Round 函数将数值四舍五入到两位小数:

    Dim MyVar, pi
    pi = 3.14159
    MyVar = Round(pi, 2) 'MyVar contains 3.14。

    Int、Fix 函数
    返回数字的整数部分。

    Int(number)

    Fix(number)

    number 参数可以是任意有效的数值表达式。如果 number 参数包含 Null,则返回 Null。

    说明
    Int 和 Fix 函数都删除 number 参数的小数部分并返回以整数表示的结果。

    Int 和 Fix 函数的区别在于如果 number 参数为负数时,Int 函数返回小于或等于 number 的第一个负整数,而 Fix 函数返回大于或等于 number 参数的第一个负整数。例如,Int 将 -8.4 转换为 -9,而 Fix 函数将 -8.4 转换为 -8。

    Fix(number) 等同于:

    Sgn(number) * Int(Abs(number))下面的示例说明 Int 和 Fix 函数如何返回数字的整数部分:

    MyNumber = Int(99.8)    ' 返回 99。
    MyNumber = Fix(99.2)    ' 返回 99。
    MyNumber = Int(-99.8)   ' 返回 -100。
    MyNumber = Fix(-99.8)   ' 返回-99。
    MyNumber = Int(-99.2)   ' 返回 -100。
    MyNumber = Fix(-99.2)   ' 返回 -99。

    问题:
    大家试试下面的代码:
    Response.Wriet(round(4.5))
    Response.Wriet(round(4.6))
    Response.Wriet(round(3.5))
    Response.Wriet(round(2.5))
    Response.Wriet(round(1.5))


    怎么样你的结果是什么?

    结果:
    4
    5
    4
    2
    2

    嗯!好像不对?4.5和2.5的四舍五入结果有问题,难道是ASP的bug?

    慢。。。这是个误会!

    看看书上是怎么说的:
    Round 函数在指定位为5的时候判断四舍五入时是根据前面数的奇偶来判断的,
                为奇数时进位,为偶数时舍位

    现在大家应该明白了,为什么出现上面的结果了。
    但是问题还是没有解决,
    1.ASP问什么这样处理
    2.如果要对数字四舍五入怎么办,自己写方法?

    大家不要着急听我慢慢说来
    1.ASP这样处理的原因
           实际上程序中的舍入大部分都不是四舍五入而是1-4舍,6-9入,5则返回最接近的偶数。这是金融中的要求,因为四舍五入中1-4舍,5-9入,舍入概率比为4/5,并不平均,这在金融中是非常重要的,只有将5取最接近的偶数才能在概率上做到对等。
    2.可以使用FormatNumber
    示例:
    FormatNumber(1.5,0)
    FormatNumber(2.5,0)
    FormatNumber(3.5,0)
    FormatNumber(4.5,0)
    也可以使用Fix,Int函数,只是截取数字的整数部分。

    哈哈!!!这回问题都解决了。

  • 相关阅读:
    英语语法入门十五(名词所有格)
    在线调试Arduino
    CANopen和Canfestival
    嵌入式系统中的printf
    云原生爱好者周刊:Lens 5.0 发布,更炫、更快、更强!
    基于 KubeSphere 的 Nebula Graph 多云架构管理实践
    KubeSphere Meetup 北京站火热报名中 | 搭载 CIC 2021 云计算峰会
    KubeSphere Helm 应用仓库源码分析
    开启 Calico eBPF 数据平面实践
    KubeSphere 在直播应用中的实践
  • 原文地址:https://www.cnblogs.com/meil/p/716460.html
Copyright © 2011-2022 走看看