QXML更新-修正了由于QString.ParseNumeric错误造成AsFloat属性读取值不正确的问题

【问题描述】

该问题是由于QString.ParseNumeric函数在解析负数时,未进行检测造成解析的结果与字符串表达式结果不一致造成的。问题出在QString.pas的ParseNumeric.ParseDec函数:

if ACount > 0 then
     ANum := ANum + iVal / IntPower(10, ACount);

应为:

if ACount > 0 then
      begin
      if ANum<0 then
        ANum:=ANum-iVal / IntPower(10, ACount)
      else
        ANum := ANum + iVal / IntPower(10, ACount);
      end;

而QXML.AsFloat属性在读取时使用了该方法,造成本问题的存在。

【严重级别】

严重

【更新级别】

立即更新

 

分享到: