问题
I've done a search on C# rounding, but haven't been able to find the answer to my current problem.
What I want to do is always round down to the nearest 50. All the values I want to round down will be in decimal.
So 635.25 would be 600.
298.42 would be 250.
149.56 would be 100.
I've looked at math.round but how would I use that so it always rounds down to the nearest 50 and never up?
回答1:
Divide the value by 50, round down to the closest whole number, and multiply by 50 again:
double n = Math.Floor(n / 50.0) * 50.0;
回答2:
Another way to Guffa's:
(((int) value) / 50) * 50
回答3:
Using modulus:
var roundedDownToClosestFifty = value - (value % 50);
来源:https://stackoverflow.com/questions/15028144/c-sharp-how-to-always-round-down-to-nearest-50