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

  • Anthony Cumia

    Anthony Cumi

    5 EYLÜL 2006
  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010