2016-09-06 78 views
0

我有两个双打,4.0和4.12345。我想对它们使用ToString来接收4.0和4.12345,但是默认的ToString会在4.0中修剪0,如果我尝试使用带有F/N的格式,那么我要么填充要么是圆形。有一个简单的通用解决方案,我可以使用吗?不要删除ToString上的尾随零

谢谢!

+3

你如何区分有效数字?一个普通的双重结构不能区分4.0和4.000 – Martheen

+2

'.ToString(“n1”)'不适合你? – stefankmitph

+1

double'4.0'等于'4','4.00','4.000'等...'ToString'不知道你想要哪一个。你必须使用格式。最简单的方法是不使用双打,并从头开始使用字符串,只需要将它们转换为双倍,例如用于计算。 –

回答

0

您可以使用下面的格式将double转换为字符串。

{0:0.00000} 

根据您的需要可以添加更多的零点。

double myNumber = 4.12345; 
var s = string.Format("{0:0.00000}", myNumber); 
Console.WriteLine(s); 

更新代码中使用的ToString

double myNumber = 4.12345; 
string s = myNumber.ToString("0.00000"); 
Console.WriteLine(s); 
+1

这会给'4.00000',而不是'4.0',不是吗? – Rawling

+0

@Rawling,但OP同时需要4.12345,所以这是唯一的选择。 – active92

2

您可以使用以下格式:

double number = 4.12345; 
string s = number.ToString(".0####"); 

仍然保持了” 0.0' :

double number = 4.0; 
string s = number.ToString(".0####"); 

你可以添加尽可能多的哈希数字。