先上代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Drawing;
using System.ComponentModel;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Threading.Tasks;
using Ivi.Visa.Interop;
using System.Diagnostics;
using System.Globalization;
.
.
.
String str2 = inst.ReadString(); // 这个字符串是检测器传过来的
try
{
MessageBox.Show(str2, "str2");//为转化的字符串
double v1 = double.Parse("0.000342351234,23");//问题点1
MessageBox.Show(string.Format("{0}", v1), "v1");
}
catch
{
MessageBox.Show("error");
}
try
{
double v2 = Convert.ToDouble("1234,0.000342351234");//问题点2
MessageBox.Show(string.Format("{0}", v2), "v2");
}
catch
{
MessageBox.Show("error");
}
问题出在转化的字符转,感觉问题出在小数点和逗号的问题上,所以具体转化的字符串我就没用str2,而改写了具体的自己编的字符串来找出问题。
现在的问题是,前面是’12‘之类大于1的数字,加','再跟小数可以正常转化,但是把'0.0012358'类似的小数放在前面就会出错。
double.Parse("",AllowThousands)这个代码我也用过,一样出错了
求问怎么解决。