function IsTwo(strValue:string):Boolean;    //是否两位小数
begin
if length(trim(strValue)) > 0 then
begin
if trunc(strtofloat(strvalue)*100)/100 <> strtofloat(strvalue) then
begin
  Result:=False;
end
else
begin
  Result:=true;
end;
end;
end;
我用这个函数判断一个字符串是否为两位小数
但输入531.41时就返回False,其它数值就无问题(如:531.42或531.43)

解决方案 »

  1.   

    我发现:
    trunc(531.41*100)=53140
    而trunc(531.42*100)=53142
    点解会这样的???
      

  2.   

    你可以这样实现:function IsTwo(strValue:string):Boolean;    //是否两位小数
    var
          vStr : String;
    begin
          vStr := Trim(strValue); 
          if Length(vStr) > 0 then
          begin
                if Length(vStr) - Pos('.', vStr) <> 2 then
                      Result := False
                else
                      Result := True;
          end;
    end;
      

  3.   

    foilsman(刀仔) 
    这样做不是判断是否为小数或数字的!!!
    有无其它方法???
      

  4.   

    你可以先判断一下strvalue是否为数字类型的!
    有问题请发信息到我的E-mail:[email protected]
      

  5.   

    怎样判断strvalue是整数还是小数啊???