Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何在点后转换为双精度字符串?_.net_C# 4.0_Double_Precision - Fatal编程技术网

.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.55

CultureInfo.InvariantCulture格式提供程序是要使用的,如果您的十进制分隔符始终为“.”,那么您需要知道什么?如果您想不带尾随的零,您可以使用@PokeMoncrat:No。您需要的是理解为什么您想要的是不可能的和没有意义的。