Esiste un modo per arrotondare il valore decimale al valore 0.05 più vicino in .Net?Come arrotondare il valore decimale fino al valore 0,05 più vicino?
Es:
7.125 -> 7.15
6.66 -> 6.7
Se la sua ora disponibile qualcuno mi può fornire l'algo?
Esiste un modo per arrotondare il valore decimale al valore 0.05 più vicino in .Net?Come arrotondare il valore decimale fino al valore 0,05 più vicino?
Es:
7.125 -> 7.15
6.66 -> 6.7
Se la sua ora disponibile qualcuno mi può fornire l'algo?
ne dite:
Math.Ceiling(myValue * 20)/20
Math..::.Round Method (Decimal, Int32, MidpointRounding)
Arrotonda un valore a virgola mobile a doppia precisione al numero specificato di cifre decimali. Un parametro specifica come arrotondare il valore se si trova a metà strada tra altri due numeri.
Math.Round(1.489,2,MidpointRounding.AwayFromZero)
MidpointRounding.AwayFromZero non consente di arrotondare UP -see http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx –
Utilizzare questa:
Math.Round(mydecimal/0.05m, 0) * 0.05m;
La stessa logica può essere utilizzato in T-SQL:
ROUND(@mydecimal/0.05, 0) * 0.05
preferisco questo approccio al selected answer semplicemente perché si può vedere direttamente la precisione Usato.
Math.Round non consente di arrotondare –
Qualcosa del genere dovrebbe funzionare per qualsiasi passo, non solo 0,05:
private decimal RoundUp (decimal value, decimal step)
{
var multiplicand = Math.Ceiling (value/step);
return step * multiplicand;
}
eccellente ... Grazie –
predator4: Che sembra essere quello che l'OP vuole, con il 6,66 '-> 6.7' esempio. – caf
@ predator4: è corretto nel mio scenario (calcolo fiscale) –