SORU
8 Kasım 2008, CUMARTESİ


Dahili .Net-en yakın 10 Aralık değerini yuvarlamak için algoritma

Nasıl, C# 10 için herhangi bir değer aralığı yuvarlak? 11 Eğer, Eğer 136, Ben 10, geri dönmek istiyorum ben örneğin, 140 dönmek istiyorum.

Kolayca elle yapabilirim

return ((int)(number / 10)) * 10;

Ama yerleşik bir algoritma için bu iş, Matematik gibi bir şey yapmak için arıyorum.() Yuvarlak. Elle yapmak istemiyorum neden bir şey bile yukarıdaki kadar basit benim projeleri tüm kod veya buna benzer bir parça yazmak istemiyorum.

CEVAP
8 Kasım 2008, CUMARTESİ


Yerleşik bu sınıf kitaplığı işlevi yoktur. En yakın tür Ondalık ve Çift yuvarlama sayılar için olan System.Math.Round() en yakın tam sayı değeri. Ancak, eğer ile çalışıyorsanız ifadenizi uzantısı bir yöntem haline getiririz .Ağ işlevi çok daha temiz bir şekilde kullanmanızı sağlayacak olan 3.5,.

public static class ExtensionMethods
{
    public static int RoundOff (this int i)
    {
        return ((int)Math.Round(i / 10.0)) * 10;
    }
}

int roundedNumber = 236.RoundOff(); // returns 240
int roundedNumber2 = 11.RoundOff(); // returns 10

Eski bir sürümü karşı programlama .NET çerçeve, sadece kaldırmak "bu" RoundOff işlevi, işlev çağrısı gibi

int roundedNumber = ExtensionMethods.RoundOff(236); // returns 240
int roundedNumber2 = ExtensionMethods.RoundOff(11); // returns 10

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • Autocar

    Autocar

    11 Mart 2006
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006