Отображать Float как String с наименьшим 1 десятичным разрядом

Я хочу отобразить float как строку, одновременно отображая хотя бы одно десятичное место. Если есть больше десятичных знаков, мне бы хотелось, чтобы они отображались.

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

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

Ответ 1

Используйте ToString ( ". 0 ###########" ) столько же, сколько десятичных чисел.

Ответ 2

Это решение похоже на то, что говорят другие, но я предпочитаю использовать 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

Ответ 4

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 got a point or a comma in it...
{
    sNumber += ".0"; // ... and if not, it an integer, so we'll add it ourselves.
}