print round(0.334567,3)
返回:0.335是正确的!
你的体重、身高是real或float吧,那是有误差的,改成numeric或decimal就没问题了

解决方案 »

  1.   

    同意楼上float/real保存的是浮点数(非精确数据),要准确的数据的话,就不要这两种类型,改decimal/numeric
      

  2.   

    --楼主看看下面这个,应该就会明白declare @a float,@b float
    set @a=0.334567
    select @a,round(@a,3)--结果: 0.334567   0.33500000000000002
    set @b=round(@a,3)
    select @b,cast(round(@a,3) as decimal(10,3))--结果: 0.33500000000000002   .335
      

  3.   

    我操作的是 ACCESS 只有float double 型的
      

  4.   

    原来是ACCESS,不会了试试用货币类型吧,那个是精确数据