Truncate Decimal number not Round Off [duplicate]
Possible Duplicate:
c# - How do I round a decimal value to 2 decimal places (for output on a page)
I want to truncate the decimals like below
i.e.
- 2.22939393 -> 2.229
- 2.22977777 -> 2.229
Solution 1:
You can use Math.Round:
decimal rounded = Math.Round(2.22939393, 3); //Returns 2.229
Or you can use ToString with the N3 numeric format.
string roundedNumber = number.ToString("N3");
EDIT: Since you don't want rounding, you can easily use Math.Truncate:
Math.Truncate(2.22977777 * 1000) / 1000; //Returns 2.229
Solution 2:
double d = 2.22977777;
d = ( (double) ( (int) (d * 1000.0) ) ) / 1000.0 ;
Of course, this won't work if you're trying to truncate rounding error, but it should work fine with the values you give in your examples. See the first two answers to this question for details on why it won't work sometimes.