Aracılığıyla paylaş


C'de tamsayı ve kayan nokta sayıları kullanma#

Bu öğreticide size C# dilindeki sayısal türler öğretildi. Küçük miktarlarda kod yazar, sonra bu kodu derleyip çalıştırırsınız. Öğretici, C# dilinde sayıları ve matematik işlemlerini inceleyen derslerin bir dizisini içerir. Bu dersler size C# dilinin temellerini öğretir.

Tavsiye

Kod parçacığı bloğu "Çalıştır" düğmesini içerdiğinde, bu düğme etkileşimli pencereyi açar veya etkileşimli penceredeki mevcut kodun yerini alır. Kod parçacığında "Çalıştır" düğmesi olmadığında kodu kopyalayıp geçerli etkileşimli pencereye ekleyebilirsiniz.

Tamsayı matematiği keşfetme

Etkileşimli pencerede aşağıdaki kodu çalıştırın.

int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);

Yukarıdaki kod, tamsayılarla temel matematik işlemlerini gösterir. int türü, tamsayıolan pozitif veya negatif bir sayıyı temsil eder. Ekleme için + simgesini kullanırsınız. Tamsayılar için diğer yaygın matematik işlemleri şunlardır:

  • Çıkarma için -
  • Çarpma için *
  • Bölme için /

Bu farklı işlemleri keşfederek başlayın. Bu işlemlerin her birini denemek için üçüncü satırı değiştirin. Örneğin, çıkarma işlemini denemek için + aşağıdaki satırda gösterildiği gibi bir - ile değiştirin:

int c = a - b;

Deneyin. "Çalıştır" düğmesini seçin. Ardından çarpmayı, * ve bölmeyi /deneyin. İsterseniz aynı satıra birden çok matematik işlemi yazarak da denemeler yapabilirsiniz.

Tavsiye

C# dilini (veya herhangi bir programlama dilini) keşfederken, kod yazarken hatalar yaparsınız. derleyicisi bu hataları bulur ve size bildirir. Çıktı hata iletileri içerdiğinde, düzeltilmesi gerekenleri görmek için örnek koda ve etkileşimli penceredeki koda yakından bakın. Bu alıştırma, C# kodunun yapısını öğrenmenize yardımcı olur.

İşlem sırasını keşfetme

C# dili, matematikte öğrendiğiniz kurallarla tutarlı kurallarla farklı matematik işlemlerinin önceliğini tanımlar. Çarpma ve bölme, toplama ve çıkarma işlemlerine göre önceliklidir. Etkileşimli pencerede aşağıdaki kodu çalıştırarak bunu keşfedin:

int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);

Çıkış, çarpmanın toplamadan önce gerçekleştirildiğini gösterir.

İlk olarak gerçekleştirilmesini istediğiniz işlemin veya işlemlerin çevresine parantez ekleyerek farklı bir işlem sırasını zorlayabilirsiniz. Etkileşimli pencereye aşağıdaki satırları ekleyin:

d = (a + b) * c;
Console.WriteLine(d);

Birçok farklı işlemi birleştirerek daha fazlasını keşfedin. Yukarıdaki koddaki dördüncü satırı aşağıdaki gibi bir değerle değiştirin:

d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);

Tamsayılar için ilginç bir davranış fark edebilirsiniz. Tamsayı bölme, sonucun ondalık veya kesirli bir bölüm içermesini bekleseniz bile her zaman bir tamsayı sonucu üretir.

Aşağıdaki kodu deneyin:

int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);

Tamsayı hassasiyetini ve sınırlarını keşfetme

Son örnek, tamsayı bölmenin sonucu kesintiye uğrattığını size gösterdi. kalan işleci olan karakteri kullanarak % alabilirsiniz:

int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");

C# tamsayı türü matematiksel tamsayılardan farklı bir şekildedir: int türü en düşük ve en yüksek sınırlara sahiptir. Bu sınırları görmek için aşağıdaki kodu deneyin:

int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");

Hesaplama bu sınırları aşan bir değer üretirse, bir alt taşma veya taşma durumu oluşur. Yanıt sanki bir sınırdan diğerine uzanıyor. Bir örneği görmek için etkileşimli pencereye şu iki satırı ekleyin:

int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");

Yanıtın en düşük (negatif) tamsayıya çok yakın olduğuna dikkat edin. min + 2ile aynıdır. Toplama işlemi , tamsayılar için izin verilen değerleri taştı. Bir taşma mümkün olan en büyük tamsayı değerinden en küçüğe "kaydırdığından" yanıt büyük bir negatif sayıdır.

int türü gereksinimlerinizi karşılamadığında kullanabileceğiniz farklı sınırları ve duyarlığı olan başka sayısal türler de vardır. Şimdi bu sayı türlerini inceleyelim.

Çift veri türüyle çalışma

double sayısal türü çift duyarlıklı kayan nokta sayısını temsil eder. Bu terimler sizin için yeni olabilir. kayan nokta sayısı, büyük veya küçük boyutlu olabilecek nonintegral sayıları göstermek için yararlıdır. Çift duyarlıklı, değeri depolamak için kullanılan ikili basamak sayısını açıklayan göreli bir terimdir. Çift duyarlıklı sayılar, tek duyarlıklı olanların iki katı ikili basamak sayısına sahiptir. Modern bilgisayarlarda çift duyarlık kullanmak, tek duyarlıklı sayılardan daha yaygındır. Tek duyarlıklı sayılar float anahtar sözcüğü kullanılarak bildirilir. Şimdi araştıralım. Aşağıdaki kodu çalıştırın ve sonucu görün:

double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);

Yanıtın bölme işleminin ondalık kısmını içerdiğine dikkat edin. Ondalıklı sayılarla biraz daha karmaşık bir ifade deneyin. Aşağıdaki değerleri kullanabilir veya diğer sayıları değiştirebilirsiniz:

double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);

Çift değer aralığı tamsayı değerlerinden büyüktür. Etkileşimli pencerede aşağıdaki kodu deneyin:

double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");

Bu değerler bilimsel olarak yazdırılır. E'dan önceki sayı, işaret işaretidir. E'tan sonraki sayı, 10'un gücü olarak üssüdür.

Matematikteki ondalık sayılar gibi, C# dilindeki çiftlerde de yuvarlama hataları olabilir. Şu kodu deneyin:

double third = 1.0 / 3.0;
Console.WriteLine(third);

0.3 3/10 olduğunu ve 1/3ile tam olarak aynı olmadığını biliyorsunuz. Benzer şekilde, 0.3333/100'dır. Bu değer 1/3daha yakındır, ancak yine de tam değildir. Kaç ondalık basamak eklerseniz ekleyin, yuvarlama hatası kalır.

Sınaması

double türünü kullanarak büyük sayı, küçük sayı, çarpma ve bölme içeren diğer hesaplamaları deneyin. Daha karmaşık hesaplamalar deneyin.

Ondalık türleriyle çalışma

Öğrenebileceğiniz bir tür daha vardır: decimal türü. decimal türü daha küçük bir aralığa sahiptir ancak double'den daha fazla duyarlığa sahiptir. Şimdi bir göz atalım:

decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");

Aralığın double türünden küçük olduğuna dikkat edin. Aşağıdaki kodu deneyerek ondalık türüyle daha büyük duyarlığı görebilirsiniz:

double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);

decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);

Ondalık türünü kullanan matematik işlemlerinde ondalık noktanın sağında daha fazla basamak olduğuna dikkat edin.

Sayılardaki M soneki, bir sabitin decimal türünü kullanması gerektiğini belirtir. Aksi takdirde, derleyici double türünü varsayar.

Uyarı

M harfi, double ile decimal anahtar sözcükleri arasındaki görsel olarak en belirgin harf olarak seçilmiştir.

Sınaması

Yarıçapı 2,50 santimetre olan bir dairenin alanını hesaplayan kod yazın. Bir dairenin alanının PI ile çarpılan yarıçap karesi olduğunu unutmayın. Bir ipucu: .NET, pi için bir sabit içerir Math.PI bu değer için kullanabilirsiniz. Math.PI, System.Math ad alanında bildirilen tüm sabitler gibi double bir değerdir. Bu nedenle, bu sınama için double değerleri yerine decimal kullanmalısınız.

19 ile 20 arasında bir yanıt almalısınız.

Bunu denedikten sonra, nasıl yaptığınıza bakmak için ayrıntılar bölmesini açın:

double radius = 2.50;
double area = Math.PI * radius * radius;
Console.WriteLine(area);

İstersen başka formüller de deneyebilirsiniz.

"C# dilinde sayılar" etkileşimli öğreticisini tamamladınız. Sonraki etkileşimli öğreticiyi başlatmak için Demetler ve türler bağlantısını seçebilir veya .NET SDK'sını indirmek, makinenizde bir proje oluşturmak ve kodlamaya devam etmek için .NET sitesini ziyaret edebilirsiniz. "Sonraki adımlar" bölümü sizi bu öğreticilere geri getirir.

C# dilindeki sayılar hakkında daha fazla bilgiyi aşağıdaki makalelerde bulabilirsiniz: