我有以下格式从FORTRAN程序输出的数字:
0.12961924D+01
如何使用C#将其解析为double?
我尝试了以下但没有成功:
// note leading space, FORTRAN pads its output so that positive and negative
// numbers are the same string length
string s = " 0.12961924D+01";
double v1 = Double.Parse(s)
double v2 = Double.Parse(s, NumberStyles.Float)
答案 0 :(得分:7)
我首先会对此字符串进行一些操作,以便将其从FORTRAN格式化为.NET格式:
以下内容可以满足您的需求:
string s = " 0.12961924D+01";
s = s.Trim().Replace("D", "E");
//s should now look like "0.12961924E01"
double v2 = Double.Parse(s, NumberStyles.Float);
答案 1 :(得分:1)
这应该有所帮助:s = s.Replace(' ', '-').Replace('D', 'E');
答案 2 :(得分:1)
由于其他人都建议用减号代替空间,这似乎很疯狂,我会提供这个更简单的解决方案:
string input = " 0.12961924D+01";
double output = Double.Parse(s.Replace('D', 'E'));