B. Clay Shannon - 1 year ago 85
C# Question

# How can I get no more and no less than two decimal places in a decimal value?

With this code:

``````totalPriceCell.Value2 = TotalPrice;
``````

...I was getting values such as "3.14963245" which I want to be "3.15" instead.

So I used this code:

``````totalPriceCell.Value2 = TotalPrice.ToString("#.##");
``````

...and that did solve that problem, but I still get values such as "7.6" and "35" (which I want to be "7.60" and "35.00")

What can I do to accomplish this, outside of manually appending a "0" for vals such as "7.6" and manually appending ".00" for values such as "35"?

## UPDATE

Niether suggestion worked, neither this:

``````totalPriceCell.Value2 = TotalPrice.ToString("F2");
``````

...nor this:

``````totalPriceCell.Value2 = Math.Round(TotalPrice, 2).ToString("F2");
``````

I still get "7.6" etc.:

## UPDATE 2

It turns out to be an Excel problem, because when I added this:

``````MessageBox.Show(Math.Round(TotalPrice, 2).ToString("F2"));
``````

...I did see values such as "7.60" (not "7.6").

It looks like you're trying to round the numbers to 2 decimal places, and then output the answer with trailing 0.

Just use the `Math.Round()` function to round, and then display using the `.ToString("F2")` format:

``````totalPriceCell.Value2 = Math.Round(TotalPrice, 2).ToString("F2");
``````

`Math.Round(arg1, arg2)`: Where 1st argument (arg1) is the value you want to round, and 2nd argument (arg2) is the decimal places you wish to round to.

`.ToString("F2")`: Usage of `"F2"` - F being the "fixed-point" format specified; 2 being the number of digits after the decimal point.

Hope this helps :)

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download