Reputation: 225
I want to display a number in a report, however I only want to show any decimal points if they are present and the I only want to show 1 decimal space.
e.g. if the number is 12 then I want to show 12
If the number is 12.1 then I want to show 12.1
If the number is 12.11 then I want to show 12.1
Upvotes: 19
Views: 37523
Reputation: 621
I had a very similar problem a while ago and the answer is to use a format string when converting the number to a string. The way to solve your issue is to use a custom numeric format string of "0.#"
double x = 12;
double y = 12.1;
double z = 12.11;
Console.WriteLine(x.ToString("0.#"));
Console.WriteLine(y.ToString("0.#"));
Console.WriteLine(z.ToString("0.#"));
Will give you the following output:
12
12.1
12.1
Upvotes: 38
Reputation: 2997
What about
Math.Round(12.11,1)?
or
double number = 12.11;
numer.ToString("0.00")
Upvotes: 1
Reputation: 30618
This will return a number with a single (optional) decimal place.
String.Format("{0:0.#}", number)
Upvotes: 13