2009-09-19 13 views

cevap

25

ne dersiniz:

Math.Ceiling(myValue * 20)/20 
+0

Mükemmel ... Teşekkürler –

+0

predator4: O OP istediği gibi görünüyor, '6,66 ile -> 6.7' örneğin. – caf

+0

@ predator4: Benim senaryoda doğru (Vergi hesaplama) –

1

Yinelenen here ve yakut ve piton için here. Çok farklı olmamalı.

2

Math..::.Round Method (Decimal, Int32, MidpointRounding)

yuvarlar fraksiyonel basamak belirtilen sayıda çift kesinlikli kayar nokta değeri. Bir parametre, diğer iki sayı arasın ortasında ise değerin nasıl döndürüleceğini belirtir.

Math.Round(1.489,2,MidpointRounding.AwayFromZero) 
+0

MidpointRounding.AwayFromZero, YUKARI UP'a izin vermez - http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx –

7

bunu kullanın:

aynı mantık T-SQL kullanılabilir
Math.Round(mydecimal/0.05m, 0) * 0.05m; 

: doğrudan hassasiyet görebilirsiniz çünkü ben selected answer bu yaklaşım tercih

ROUND(@mydecimal/0.05, 0) * 0.05 

Kullanılmış. Böyle

+2

Math.Round Yuvarlatılmasına izin vermez –

4

şey sadece 0,05, herhangi bir adım için çalışması gerekir:

private decimal RoundUp (decimal value, decimal step) 
{ 
    var multiplicand = Math.Ceiling (value/step); 
    return step * multiplicand; 
}