SQL数据库中表test的某个字段定义是float型的,然后用Set MSHFlexGrid.DataSource语句把表test的数据跟MSHFlexGrid绑定,发现float数据不能准确显示。例如:3.77显示为3.77000000001。
请问怎么解决才能准确显示?
用format函数会出错啊!!也就是:使用Select Format(colName,'#.00") as colName From test会出错。
请高手赐教

解决方案 »

  1.   

    Select Format(colName,'#.00') as colName From test
    你写错了,应该是2个单引号
      

  2.   

    RstStr = "Select format(iRest,'00.0') as NewNames,sCardID from tUsers order by sCardID desc "
    我这样以前是这样写的,没有错误,现在也没有错误,所以你的问题也应该在这里!·
      

  3.   

    如果是Access数据库,可以用Format函数,如果是sql数据库,用SubString函数
      

  4.   

    语句如下:
    rs1.Open "Select Order_Number,Supplier_Name,Material_Name,Material_Amount,Format(Material_UnitPrice,'#.00') As Material_UnitPrice," & _
        "Format(Material_TotalPrice,'#.00') As Material_TotalPrice,Currency_Type,Send_Date,Desire_Date,IsAnswer,IsArrive From CLDDB" & _
        " Where Desire_Date >= " & CStr(lngCurrentDate) & " Order By Desire_Date", conn1, 3, 3, 1错误报告:Format不是可以识别的函数名
      

  5.   

    如果你用的是MSSql数据库,是会报那个错误,因为MSSql里没有Format函数,改用SubString函数吧
      

  6.   

    我只要显示小数后两位就足够了。如:36.5000001显示为36.50就可以了。请教substring怎么用?
      

  7.   

    faysky2()  都告诉你换一个函数了,你怎么还没有搞定呀!我就知道access数据库的format,其他的我也不晓得,学习!
      

  8.   

    SUBSTRING ( expression , start , length )
      

  9.   

    还可以用Round函数(函数的第2个参数表示保留的小数的位数):
    select Round(fltCol,2) As fltCol from tbName  '保留两位小数,具体的自己改
      

  10.   

    Round是可以保留所要求的小数位数,但是MSHFlexGrid显示时一样显示“尾巴”,看来数据绑定到MSHFlexGrid后,应该对MSHFlexGrid进行处理。