2011-02-06 30 views
5

我有一个double值。我想以x.yz的格式格式化这个值。我该怎么做呢?我不断收到数字截断。有人能告诉我如何在C#中执行此操作吗?C中的格式化为双精度型#

谢谢!

+2

`myDouble.ToString(“0.00”);`? – 2011-02-06 21:27:07

+0

您能提供一个更具体的例子吗?另外,请检查“相关”页面右侧链接的问题。 – ChrisF 2011-02-06 21:27:26

回答

3
string.Format("{0:0.00}",yourdouble); 

也许你会发现有用棍子在你的办公室

2

试过的东西像这样,使用ToString?

doubleNumber = -1898300.1937; 
Console.WriteLine(doubleNumber.ToString("F2", CultureInfo.InvariantCulture)); 
// Displays -1898300.19 
9

位数后小数点

这个例子格式双串固定的小数位数。小数点后两位使用模式“0.00”。如果浮点数的小数点位数较少,则右侧的其余数字将为零。如果它有更多小数位数,这个数字将被舍入。

// just two decimal places 
String.Format("{0:0.00}", 123.4567);  // "123.46" 
String.Format("{0:0.00}", 123.4);   // "123.40" 
String.Format("{0:0.00}", 123.0);   // "123.00" 

下一个示例格式为带有浮点小数位数的字符串的两倍。例如。最大两位小数使用模式“0。##”。

// max. two decimal places 
String.Format("{0:0.##}", 123.4567);  // "123.46" 
String.Format("{0:0.##}", 123.4);   // "123.4" 
String.Format("{0:0.##}", 123.0);   // "123" 

位数小数点

之前,如果你想要一个浮点数有之前小数点前小数点使用N次零位任意数量最少。例如。模式“00.0”将浮点数格式化为字符串,在小数点之前至少有两位数字,之后是一位数字。

// at least two digits before decimal point 
String.Format("{0:00.0}", 123.4567);  // "123.5" 
String.Format("{0:00.0}", 23.4567);  // "23.5" 
String.Format("{0:00.0}", 3.4567);  // "03.5" 
String.Format("{0:00.0}", -3.4567);  // "-03.5" 

千位分隔

要格式化双串与使用数千分离器的浮体通常格式化图案,例如使用前零和逗号分隔符模式“0,0.0”将数字格式化为使用数千个分隔符并且具有一个小数位。零之间

String.Format("{0:0,0.0}", 12345.67);  // "12,345.7" 
String.Format("{0:0,0}", 12345.67);  // "12,346" 

浮点数一个可以以两种方式进行格式化,带或不带小数点前前导零。要在没有前导零的情况下格式化数字#在点之前。例如“#.0”格式的数字有小数点后一位,零到小数点前的N位(例如“.5”或“123.5”)。

以下代码显示如何格式化为零(双重类型)。

String.Format("{0:0.0}", 0.0);   // "0.0" 
String.Format("{0:0.#}", 0.0);   // "0" 
String.Format("{0:#.0}", 0.0);   // ".0" 
String.Format("{0:#.#}", 0.0);   // "" 

用空格

对齐的数字要对齐浮点数向右使用逗号冒号前“”选项。键入逗号后跟一些空格,例如“0,10:0.0”(这只能在String.Format方法中使用,不能在double.ToString方法中使用)。要将数字与左侧对齐,请使用负数的空格。

String.Format("{0,10:0.0}", 123.4567); // "  123.5" 
String.Format("{0,-10:0.0}", 123.4567); // "123.5  " 
String.Format("{0,10:0.0}", -123.4567); // " -123.5" 
String.Format("{0,-10:0.0}", -123.4567); // "-123.5 " 

自定义格式为负数,零

如果您需要使用负浮点数或零自定义格式,用分号分隔符“;”图案拆分到三个部分。第一部分格式为正数,第二部分格式为负数,第三部分格式为零。如果您省略了最后一部分,则将使用第一部分对零进行格式化。

String.Format("{0:0.00;minus 0.00;zero}", 123.4567); // "123.46" 
String.Format("{0:0.00;minus 0.00;zero}", -123.4567); // "minus 123.46" 
String.Format("{0:0.00;minus 0.00;zero}", 0.0);  // "zero" 

http://www.csharp-examples.net/string-format-double/

0

我使用Math.Round Method

Math.Round(yourdouble, 2) 

您还可以指定的舍入规则。