Отображать число с плавающей точкой как минимум с 1 десятичным знаком - PullRequest
14 голосов
/ 07 ноября 2011

Я хочу отображать число с плавающей запятой в виде строки, при этом обязательно отображать хотя бы одно десятичное число.Если есть больше десятичных знаков, я бы хотел, чтобы отображались эти цифры.

Например: 1 должно отображаться как 1.0 1.2345 должно отображаться как 1.2345

Может кто-нибудь помочь мне с форматной строкой?

Ответы [ 4 ]

23 голосов
/ 07 ноября 2011

Используйте ToString (". 0 ###########") с таким количеством #, как вы хотите.

10 голосов
/ 07 ноября 2011

Это решение похоже на то, что говорят другие, но я предпочитаю использовать string.Format.Например:

float myFloat1 = 1.4646573654;
float myFloat2 = 5;
Console.WriteLine(string.Format("Number 1 : {0:0.00##}", myFloat1));
Console.WriteLine(string.Format("Number 2 : {0:0.00##}", myFloat2));

// Newer Syntax
Console.WriteLine($"{myFloat1:0.00##}";
Console.WriteLine($"{myFloat2:0.00##}";

Это приведет к:

Number 1 : 1.4646
Number 2 : 5.00
Number 1 : 1.4646
Number 2 : 5.00
0 голосов
/ 07 ноября 2011
float fNumber = 1.2345; // Your number
string sNumber = fNumber.ToString(); // Convert it to a string
If ((sNumber.Contains(".") == false) && (sNumber.Contains(",") == false)) // Check if it's got a point or a comma in it...
{
    sNumber += ".0"; // ... and if not, it's an integer, so we'll add it ourselves.
}
0 голосов
/ 07 ноября 2011

Попробуйте это:

doubleNumber.ToString ( "0,0 ###");

И, для вашей справки (двойной метод ToString): http://msdn.microsoft.com/en-us/library/kfsatb94.aspx

...