.net 如何在点后转换为双精度字符串?
我想将此字符串:.net 如何在点后转换为双精度字符串?,.net,c#-4.0,double,precision,.net,C# 4.0,Double,Precision,我想将此字符串:0.55000000000000004转换为双精度:0.55。 怎么做?是字符串还是双精度? 如果是字符串: double d = double.Parse(s,CultureInfo.InvariantCulture); string s=string.Format("{0:0.00}",d); 如果已经是双精度格式,则使用第二行。没有双精度0.55-数字不能准确表示为二进制分数。这可能就是为什么你一开始就有这么长的绳子。您可能应该使用decimal类型,而不是double
0.55000000000000004
转换为双精度:0.55
。
怎么做?是字符串还是双精度?
如果是字符串:
double d = double.Parse(s,CultureInfo.InvariantCulture);
string s=string.Format("{0:0.00}",d);
如果已经是双精度格式,则使用第二行。没有双精度0.55-数字不能准确表示为二进制分数。这可能就是为什么你一开始就有这么长的绳子。您可能应该使用decimal
类型,而不是double
阅读以了解原因。您可以使用此代码降低零件精度:
double m = Math.Round(0.55000000000000004,2);
结果将是:0.55CultureInfo.InvariantCulture格式提供程序是要使用的,如果您的十进制分隔符始终为“.”,那么您需要知道什么?如果您想不带尾随的零,您可以使用@PokeMoncrat:No。您需要的是理解为什么您想要的是不可能的和没有意义的。