圣斗士ol时间:vb札记

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 01:39:22
1、小数保留问题取整函数fix()保留n位小数,应取n+1位,否则最后一位可能会出错如保留2位,应取3位:FormatNumber=Fix( a*1000) / 1000 数据类型的精度问题
你没声明数据类型,这儿VB将表达式中的所有值当作浮点数来处理了,通俗地说浮点数就是近似值,所以误差在所难免
要保持精度,声明表达式中的所有类型为currency类型,可以保证4位精度...
测试:
    Dim a As Currency
    Dim b As Currency
    Dim c As Currency
    Dim sss, sss2
   
    a = 6.27: b = 6.28: c = 0.01
   
    sss = (Fix(a / c)) * c
    sss = sss + c

    sss2 = (Fix(b / c)) * c
    sss2 = sss2 + c
   
    MsgBox sss & Space(10) & sss2 例: num1为小数,num2为需保留的位数
Private Sub Command1_Click()Dim num1!'这里定义位single而不是整型!Dim num2!If Text1.Text <> "" And Text2.Text <> "" Thennum1 = Val(Text1.Text)num2 = Val(Text2.Text)Text1.Text = Int(num1 * 10 ^ num2 + 0.5) / 10 ^ num2ElseMsgBox ("请输入所有的数值")End IfEnd Sub



2、VB中有专门用来四舍五入的函数Round 函数:返回按指定位数进行四舍五入的数值。语法:Round(expression[, numdecimalplaces])参数:expression(必选项)-被四舍五入的数值表达式 ;numdecimalplaces(可选项)-数字表明小数点右边有多少位进行四舍五入,如果省略则 Round 函数返回整数。下面的示例利用 Round 函数将数值四舍五入到两位小数: Dim MyVar, pipi = 3.14159MyVar = Round(pi, 2)   'MyVar contains 3.14。