2015-02-24 41 views
0

我正在使用drawstring从列表中获取要显示的项目,但现在我希望它显示为4位数字而不是一位数字。如何在列表项上使用字符串格式

所以,而不是它显示0我希望它显示0.000。如果有人能帮助我,这将是很好的。

这是使用的列表类型。

List<string> ListVrd = new List<string>(); 

用于填充列表的代码。

c = drART["MVRD"].ToString(); 
ListVrd.Add(c); 

并用于打印项目的代码行。

row = ListVrd[itemsPrinted]; 
e.Graphics.DrawString(row, DefaultFont, Brushes.Black, distance, currentY);//print item 
+0

顶行设置'ListVrd'的行,底部使用'ListSgr' ..这些是相同的吗? – Sayse 2015-02-24 09:11:07

+0

似乎我复制了底部的错误列表,但它不是自从它唯一的列表名称以来的最大差异。但是谢谢你指出我的问题中的错误现在改变了它。 – maam27 2015-02-24 09:12:14

+0

如何填充'ListVrd'? – Dennis 2015-02-24 09:13:11

回答

0

试图使其工作中使用的一些建议在这里的东西和一些MSDN列表后格式占位符我设法得到我想要的。

这是即时使用的代码。

c = drART["MVRD"].ToString(); 
c2 = (String.Format("{0:###,###0,000} ", Convert.ToInt32(c), cult)); 
ListVrd.Add(c2); 
-2

你需要的string转换为数值类型,然后再转换回string所需格式,例如

formattedString = Convert.ToDouble(unformattedString).ToString("n3"); 

实际上,转换由您决定,即在将项目添加到列表或将其取出之前。我不得不想,如果数据代表一个数字,那么为什么它首先存储为string

+0

这很荒唐。相反,在填充列表时,将数字转换为适当的字符串,即可提供双重转换。 – Dennis 2015-02-24 09:19:08

+0

@丹尼斯,这是对被问到的问题的回答。也不需要使用转换的两个部分。 “双重转换”包含两个单一转换,所以如果您有一个数字(我特别提到),那么您显然只需要使用第二个转换。 – jmcilhinney 2015-02-24 09:20:37

+0

@jmcilhinney这个问题发布后不久就会更新。 – Jamiec 2015-02-24 09:22:00

1

我认为什么是从drART未来是一个数字,在这种情况下,你可以在那里进行格式化:

c = ((float)drART["MVRD"]).ToString("0.000"); 
ListVrd.Add(c); 

注意的是,上述假设从drART["MVRD"]来的号码是float。检查什么键入实际上是 - 这可能是intdecimallong

Standard formatting stringsCustom formatting strings

+0

如果我尝试它会给我这个错误:方法'ToString'没有超载需要1个参数 – maam27 2015-02-24 09:19:40

+0

@ maam27 - 您需要首先将结果从'drART'转换为正确的类型。病情更新回答 – Jamiec 2015-02-24 09:20:15

+0

我会用什么数字?我尝试了一个int的代码,但如果我去那,它会给我这个:“指定的演员是无效的。” – maam27 2015-02-24 09:26:11

相关问题