double to String

时间:2011-03-18 17:02:54

标签: .net

我需要一个double to string来显示小数分隔符后面的max X chars。

我试过

?string.Format("{0,10}", 1.234567890123456789)
"1,23456789012346"

?string.Format("{0:F10}", 1,234567890123456789)
"1,0000000000"

5 个答案:

答案 0 :(得分:3)

鉴于这是家庭作业,我会指出相关文档,而不是给你代码:

请注意,如果您对完全 X小数位感到满意,使用标准数字格式字符串相对容易。如果您希望最多 X小数位(但如果可能,则更少),您可能需要使用自定义数字格式字符串。至少据我所见......

答案 1 :(得分:1)

这是一个更大的暗示:

Console.WriteLine(String.Format("{0:F1}", Math.Pi)); // Prints 3.1
Console.WriteLine(String.Format("{0:F2}", Math.Pi)); // Prints 3.14
Console.WriteLine(String.Format("{0:F3}", Math.Pi)); // Prints 3.141

答案 2 :(得分:0)

您应该使用String.Format功能格式化数字。要显示带有2位小数的数字,请使用:

String.Format("{0.00}",MyNumber);

答案 3 :(得分:0)

Jons得到了正确的方向,我在csharp-examples上使用了集合http://www.csharp-examples.net/string-format-double/,因为我每天都不处理这些问题,但每周至少一次(只是为了忘记),这些片段应该能满足你的需要

答案 4 :(得分:0)

我将添加其他人建议的内容(String.Format("{0:0.0000000000}", number)),例如,如果您需要在小数点分隔符后总是有10位小数,String.Format根据当前文化格式化数字,所以在美国,它将使用.作为小数分隔符,在欧洲使用,。如果您需要在“固定”“默认”文化中格式化数字,则可以执行此操作:String.Format(CultureInfo.InvariantCulture, "{0:0.0000000000}", number)。如果您需要在特定文化中进行格式化:String.Format(new CultureInfo("it-IT"), "{0:0.0000000000}"(这将使用意大利文化)。