zoukankan      html  css  js  c++  java
  • VB开发——VB中如何四舍五入

    在 Visual Basic 要做到四舍五入的功能应该用 Format 这个函数,用 CInt 或 CLng 都只能取到整数部分,而用 Format 函数可以取到你所指定的小数位数。

    副程式

    Public Function Round(num As Variant, n As Long) As String
         Round = Format(num, IIf(n > 0, "0." & String(n, "0"), "0"))
    End Function

    叁数说明

    • num:欲四舍五入的数值。因为欲四舍五入的数值可能是 Double 或 Single 或是其它资料型态,所以这里把 num 宣告成 Variant;如果把 num 宣告成 Double,而欲四舍五入的数值是 Single 型态,就会出现资料型态不符合的错误;但是把 num 宣告成 Variant 则可避免这种错误,或是使用传值呼叫 (ByVal) 也可避免这种错误。其实我不确定这个观念是否正确,如果有误请来信指正,谢谢。
    • n:取到小数点以下第 n 位。

    Round 函数传回的是一个字串资料。

    范例

    Private Sub Command1_Click()
         Dim a As Double
         a = 1234.56789
         Debug.Print Fix(a)
         Debug.Print Int(a)
         Debug.Print CInt(a)
         Debug.Print CLng(a)
         Debug.Print Round(a, 0)
         Debug.Print Round(a, 3)
    End Sub

    执行後在 VB 的即时运算视窗出现以下结果:

     1234
     1234
     1235
     1235
    1235
    1234.568

    Fix 和 Int 是属於无条件舍去,但是他们两者在处理负数的部分仍有些微差异,请自行叁阅VB Help;CInt 和 CLng 也有四舍五入的功能,但是只能取到整数部分;Format 则可以四舍五入到你所指定的小数位数。

    有一点值得一提的是,Format 的第二个叁数使用 "0" 和 "#" 的差异:

    format(123.4,".000") 输出 123.400

    format(123.4,".###") 输出123.4

    也就是说:第二个叁数使用 "0" 的,会自动补上多馀的 0,有时候为了编排好看会希望这麽做;使用 "#" 的则不会自动补上 0。

  • 相关阅读:
    Python time
    Python List/Tutle/Set/Str/Dict
    python os
    Python 学习之九九乘法表
    Pycharm配置
    python 打包exe:
    Linux 安装PHP扩展过程
    tkinter在循环中创建按钮以传递命令参数,闭包的坑
    tkinter
    设置greenplum用户和密码访问:
  • 原文地址:https://www.cnblogs.com/ainima/p/6331578.html
Copyright © 2011-2022 走看看