【问题描述】
该问题是由于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属性在读取时使用了该方法,造成本问题的存在。
【严重级别】
严重
【更新级别】
立即更新