我有一个具有如下属性的 XML 节点:
<pad name="E" x="2.5" y="7" drill="1.3"/>
当我将结果分配Attributes["x"]
为双精度时,我得到的结果是 25,而不是 2.5,但没有任何抱怨或错误。
要获得正确的转换,我首先必须将属性分配给字符串,替换小数点 '.' 转换为十进制 ',',然后将字符串转换为双精度。很明显,Attribute["x"]
不能转换,但它什么也没说!(漏洞?!?)
这是转换错误的代码:
double x = XMLNode->Attributes["x"];
这给出了 25 而不是 2.5 的错误 x,这是我的解决方法:
String sd = XMLNode->Attributes["x"];
if (sd.Pos(".")) sd[sd.Pos(".")] = ',';
double x = sd.ToDouble();
这给出了 x (2.5) 中的正确值
必须有一个更简单的方法来做到这一点!
// 谢谢