我尝试读取一些excel文件并转换一些字符串列以保存在db中。但我面对一些双解析错误:double result = double.Parse(1,15); 结果:1.149999999999 ....我不想看到这个。我想要double result = double.Parse(1,15);结果= 1.15
static void Main(string[] args)
{
NumberStyles styles;
IFormatProvider provider;
styles = NumberStyles.Float;
provider = CultureInfo.CreateSpecificCulture("tr-TR");
string test = "1,15";
double result = double.Parse(test, styles, CultureInfo.CreateSpecificCulture("tr-TR"));
Console.WriteLine(result.ToString());
}
}
答案 0 :(得分:1)
如果需要高精度数据类型,请使用数据库和应用程序的decimal
数据类型。
答案 1 :(得分:0)
你解析为浮点数,但转换为double - float不准确,因此你看到错误的原因。
您的代码应为:
double result = double.Parse(...);
而不是:
double result = float.Parse(...);
编辑:
旁注:当您将某些内容转换为字符串时,如果您希望进行往返,请使用value.ToString("R")
;这将表示字符串的确切值,而不是截断值。
答案 2 :(得分:0)
在代码中看起来像错误:double result = float .Parse(); double.parse()应该可以正常工作。