Kayan nokta sayısal türleri (C# Başvurusu)Floating-point numeric types (C# reference)

Kayan nokta türleri bir alt kümesidir basit türler ve ile başlatılabilir değişmez değerleri.The floating-point types are a subset of the simple types and can be initialized with literals. Tüm kayan nokta türleri de değer türleridir.All floating-point types are also value types. Tüm kayan nokta sayısal türleri desteği aritmetik, karşılaştırma ve eşitlik işleçleri.All floating-point numeric types support arithmetic, comparison, and equality operators.

Kayan nokta türleri özellikleriCharacteristics of the floating-point types

C#Aşağıdaki önceden tanımlanmış kayan nokta türlerini destekler:C# supports the following predefined floating-point types:

C#anahtar yazınC# type/keyword Yaklaşık aralıkApproximate range DuyarlıkPrecision .NET türü.NET type
float ±1.5 x 10−45 ±3.4 x 10 için38±1.5 x 10−45 to ±3.4 x 1038 ~ 6-9 basamak~6-9 digits System.Single
double ±5.0 × 10−324 ±1.7 × 10 için308±5.0 × 10−324 to ±1.7 × 10308 yaklaşık 15-17 basamak~15-17 digits System.Double
decimal ±1.0 x 10-28 ±7.9228 x 10 için28±1.0 x 10-28 to ±7.9228 x 1028 28-29 basamak28-29 digits System.Decimal

Önceki tabloda her C# en soldaki sütun türü anahtar kelimedir karşılık gelen .NET türü için bir diğer ad.In the preceding table, each C# type keyword from the leftmost column is an alias for the corresponding .NET type. Birbirinin yerine kullanılabilir.They are interchangeable. Örneğin, aşağıdaki bildirimleri aynı türde değişkenleri bildirin:For example, the following declarations declare variables of the same type:

double a = 12.3;
System.Double b = 12.3;

Her bir kayan nokta türünün varsayılan değeri sıfırdır 0.The default value of each floating-point type is zero, 0. Kayan nokta türlerinden her birinin sahip MinValue ve MaxValue türü minimum ve maksimum sonlu değeri sağlayan sabitler.Each of the floating-point types has the MinValue and MaxValue constants that provide the minimum and maximum finite value of that type. float Ve double türleri temsil eden bir sayı değil ve sonsuz değerler sabitleri de sağlar.The float and double types also provide constants that represent not-a-number and infinity values. Örneğin, double türü aşağıdaki sabitler sunar: Double.NaN, Double.NegativeInfinity, ve Double.PositiveInfinity.For example, the double type provides the following constants: Double.NaN, Double.NegativeInfinity, and Double.PositiveInfinity.

Çünkü decimal türünde daha fazla duyarlık ve hem de daha küçük bir aralığı float ve double, finansal ve parasal hesaplamalar için uygundur.Because the decimal type has more precision and a smaller range than both float and double, it's appropriate for financial and monetary calculations.

Karıştırabilir miyim integral türleri ve kayan nokta türlerinde bir ifade.You can mix integral types and floating-point types in an expression. Bu durumda, tamsayı türleri için kayan nokta türleri dönüştürülür.In this case, the integral types are converted to floating-point types. İfadenin değerlendirilmesi aşağıdaki kurallara göre gerçekleştirilir:The evaluation of the expression is performed according to the following rules:

  • Kayan nokta türlerinden biri ise double, ifadenin değerlendirdiği double, veya bool karşılaştırmalar ilişkisel veya eşitlik karşılaştırmaları.If one of the floating-point types is double, the expression evaluates to double, or to bool in relational comparisons or comparisons for equality.
  • Yoksa hiçbir double değerlendirilen ifade ifadenin türü float, veya bool karşılaştırmalar ilişkisel veya eşitlik karşılaştırmaları.If there is no double type in the expression, the expression evaluates to float, or to bool in relational comparisons or comparisons for equality.

Bir kayan nokta ifadesi, aşağıdaki adımlardan birini değerleri içerebilir:A floating-point expression can contain the following sets of values:

  • Pozitif ve negatif sıfırıPositive and negative zero
  • Pozitif ve negatif sonsuzPositive and negative infinity
  • Bir sayı değil değeri (NaN)Not-a-Number value (NaN)
  • Sıfır olmayan değerler sınırlı kümesiThe finite set of nonzero values

Bu değerler hakkında daha fazla bilgi için bkz. IEEE standardı ikili Floating-Point aritmetik, kullanılabilir IEEE Web sitesi.For more information about these values, see IEEE Standard for Binary Floating-Point Arithmetic, available on the IEEE website.

Kullanabilirsiniz standart sayısal biçim dizeleri veya özel sayısal biçim dizeleri bir kayan nokta değeri olarak biçimlendirmek için.You can use either standard numeric format strings or custom numeric format strings to format a floating-point value.

Kayan nokta değişmez değerleriFloating-point literals

Varsayılan olarak, bir kayan nokta sayısal sabit değer atama işlecinin sağ tarafında kabul double.By default, a floating-point numeric literal on the right side of the assignment operator is treated as double. Bir kayan veya tamsayı sabit belirli bir türe dönüştürmek için sonekleri kullanabilirsiniz:You can use suffixes to convert a floating-point or integral literal to a specific type:

  • d Veya D soneki için bir sabit değer dönüştürür bir double.The d or D suffix converts a literal to a double.
  • f Veya F soneki için bir sabit değer dönüştürür bir float.The f or F suffix converts a literal to a float.
  • m Veya M soneki için bir sabit değer dönüştürür bir decimal.The m or M suffix converts a literal to a decimal.

Aşağıdaki örnekler, her sonek gösterir:The following examples show each suffix:

double d = 3D;
d = 4d;
float f = 3.5F;
f = 5.4f;
decimal myMoney = 300.5m;
myMoney = 400.75M;

DönüşümlerConversions

Örtük bir dönüştürme (adlı bir dönüştürme genişletme) öğesinden float için double çünkü aralığını float değerleri olan uygun bir alt kümesini double ve Duyarlılıkkaybıolmadanfloat için double.There's an implicit conversion (called a widening conversion) from float to double because the range of float values is a proper subset of double and there is no loss of precision from float to double.

Örtük bir dönüştürme kaynak türden hedef türe tanımlı değil, bir kayan nokta türü başka bir kayan nokta türüne dönüştürmek için açık bir tür dönüştürme kullanmanız gerekir.You must use an explicit cast to convert one floating-point type to another floating-point type when an implicit conversion isn't defined from the source type to the destination type. Bu adlı bir daraltma dönüştürmesi.This is called a narrowing conversion. Dönüştürme veri kaybıyla sonuçlanabildiğinden açık durumda gereklidir.The explicit case is required because the conversion can result in data loss. Diğer kayan nokta türleri arasında örtük dönüştürme vardır ve decimal türü için decimal türünde daha da fazla duyarlığa float veya double.There's no implicit conversion between other floating-point types and the decimal type because the decimal type has greater precision than either float or double.

Örtük sayısal dönüştürmeler hakkında daha fazla bilgi için bkz. Implicit Numeric Conversions Table.For more information about implicit numeric conversions, see Implicit Numeric Conversions Table.

Açık sayısal dönüştürmeler hakkında daha fazla bilgi için bkz. Explicit Numeric Conversions Table.For more information about explicit numeric conversions, see Explicit Numeric Conversions Table.

Ayrıca bkz.See also