Bir dönüştürmek için en iyi yolu nedir doublebir etmek int? Oyuncular kullanılmalı mı?
etc.:)
Bir dönüştürmek için en iyi yolu nedir doublebir etmek int? Oyuncular kullanılmalı mı?
etc.:)
Yanıtlar:
Varsayılan kısalma-sıfıra davranışını istiyorsanız bir döküm kullanabilirsiniz. Alternatif olarak, kullanmak isteyebilirsiniz Math.Ceiling, Math.Round, Math.Floorvb - Bunu yaptıktan sonra da bir döküm gerekir rağmen.
Unutmayın ki, aralığı aralığından intçok daha küçüktür double. A dökme doubleiçin intdeğer aralığının dışında ise bir istisna olmayacaktır intdenetlenmeyen bir bağlamda bir çağrı oysa Convert.ToInt32(double)irade. Değer, aralığın dışındaysa, almanın sonucu (denetlenmeyen bir bağlamda) açıkça tanımlanmamıştır.
int32 veya 64 bitlik bir makine kullanıyor olmanıza bakılmaksızın, a'nın boyutu her zaman 32 bittir.
intVal = System.Convert.ToInt32(System.Math.Floor(dblVal));
using System;dosyanın üst kısmında olurdu , bu noktada olabilirintVal = Convert.ToInt32(Math.Floor(dblVal));
usingyönergeleri öğrenmek .
Eğer döküm kullanırsanız, yani (int)SomeDoublekesirli kısmı kesersiniz. Yani SomeDouble4.9999 olsaydı sonuç 5 değil 4 olur. İnt değerine dönüştürmek sayıyı yuvarlamaz. Yuvarlama kullanımı istiyorsanızMath.Round
Evet neden olmasın?
double someDouble = 12323.2;
int someInt = (int)someDouble;
ConvertSınıfı kullanmak da işe yarar.
int someOtherInt = Convert.ToInt32(someDouble);
Convert.ToInt32 dönüştürmenin en iyi yolu
İşte tam bir örnek
class Example
{
public static void Main()
{
double x, y;
int i;
x = 10.0;
y = 3.0;
// cast double to int, fractional component lost (Line to be replaced)
i = (int) (x / y);
Console.WriteLine("Integer outcome of x / y: " + i);
}
}
Sayıyı daha yakın tam sayıya yuvarlamak istiyorsanız aşağıdakileri yapın:
i = (int) Math.Round(x / y); // Line replaced
Benim yollarım:
- Convert.ToInt32(double_value)
- (int)double_value
- Int32.Parse(double_value.ToString());
double_value = 0.1