25 Eylül 2018 Salı

Math Sınıfı

Cos metodu
Şöyle yaparız.
Double x = Math.Cos (...);
Pow metodu
Double döner.
Örnek
Şöyle yaparız.
Double x = Math.Pow (10.0, -2)
Örnek
Şöyle yaparız.
var pow = (int)Math.Pow(10, 10);
PI Alanı
Şöyle yaparız.
Math.PI
Round metodu - sayı + MidpointRounding
double veya decimal parametre alır. float parametre almaz. Yuvarlama sonucu Platform = Any CPU veya Platform = x64 olmasına göre değişebilir.

Örnek
Şöyle yaparız.
double d = -2.6114289999999998;
double d1 = Math.Round(d, 7);
double d2 = Math.Round(d, 5);
double d3 = Math.Round(d, 6);
Örnek
En yakın çift sayıya yuvarlamak için şöyle yaparız. Elimizdeki sayı 3 olsun, yarısı 1.5 eder ancak yukaru yuvarlayınca 2 eder. Bunu 2 ile çarpınca 4 elde ederiz.
double source = 1123.0;

// 1124.0
double result = Math.Round(source / 2, MidpointRounding.AwayFromZero) * 2;
Round metodu - sayı + küsurat hanesi 
En yakın sayıya yuvarlar.
Örnek
En yakın noktalı sayıya yuvarlamak için şöyle yaparız.
public static class FloatExtension
{
    public static decimal RoundFirstSignificantDigit(this decimal input)
    {
        int precision = 0;
        var val = input;
        while (Math.Abs(val) < 1)
        {
            val *= 10;
            precision++;
        }
        return Math.Round(input, precision);
    }
}
Kullanmak için şöyle yaparız.
decimal input = 0.00001;
input.RoundFirstSignificantDigit();
Çıktı olarak şunu alırız.
0.001 -> 0.001
0.00367 -> 0.004
0.00337 -> 0.003
0.000000564 -> 0.0000006
0.00000432907543029 ->  0.000004
Truncate metodu
double değeri long değere cast etmekden iyidir.
Örnek
Şöyle yaparız.
double RoundToNearestEven(double value) =>
    Math.Truncate(value) + Math.Truncate(value) % 2;
Sin metodu
Şöyle yaparız.
Double x = Math.Sin (...);
Bu metodlar radyan değer aldıkları için derece ile kullanabilmek için şöyle yaparız.
public static class Helper
{
  public static double Sin(double degrees) => Math.Sin(degrees * Math.PI / 180.0);
  public static double Cos(double degrees) => Math.Cos(degrees * Math.PI / 180.0);
  public static double Tan(double degrees) => Math.Tan(degrees * Math.PI / 180.0);
}

Hiç yorum yok:

Yorum Gönder