• 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。

  • 相关阅读:
    Entity Framework EF6使用 MySql创建数据库异常解决办法
    在c#中使用bitblt显示图片
    百度指数完美采集器
    使用HtmlAgilityPack解析Html(非常好用)
    线程的暂停与继续
    webform 中使用ajax
    OkHttp+Stetho+Chrome调试android网络部分(原创)
    android最佳实践的建议(翻译自android-best-practices)
    Android最流行的网络框架(原创)
    android studio 中配置androidAnnotation 的新版正确配置
  • 原文地址:https://www.cnblogs.com/ainima/p/6331578.html
Copyright © 2020-2023  润新知