【发布时间】:2019-09-29 19:04:50
【问题描述】:
我在 C# 中(在 Unity 中,使用 VS2019)中有一个非常尴尬的行为,这让我发疯了好几天,我真的很感谢你的帮助。
我有一个非常简单的 XML 文件,在这个简单的例子中只包含一个根节点和几个属性:
<?xml version="1.0" encoding="utf-8"?>
<root bit_depth="8" end_datetime="737061.75" start_datetime="737061">
</root>
我试着读一下:
XmlDocument document = new XmlDocument();
document.Load( _projectFilePath );
XmlElement root = document.DocumentElement;
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo( "en-US" );
string startTime = root.Attributes[ "start_datetime" ].Value;
Debug.Log( "1st::: Read startTime number: " + startTime );
double startTimeValue = double.Parse(startTime);
Debug.Log( "2nd::: Parse startTime number: " + startTimeValue );
string endTime = root.Attributes[ "end_datetime" ].Value;
Debug.Log( "1st::: Read endTime number: " + endTime );
double endTimeValue = double.Parse( endTime, CultureInfo.InvariantCulture );
Debug.Log( "2nd::: Parse endTime number: " + endTimeValue );
结果如下:
1st::: Read startTime number: 737061
2nd::: Parse startTime number: 737061
1st::: Read endTime number: 7,370618E+07
2nd::: Parse endTime number: 73706180000000
只是……为什么?!?!?!?!为什么当我显式解析双精度时,它会将浮点数弄乱为 7,370618E+07?
【问题讨论】:
标签: c# xml parsing unity3d xml-parsing