Bir dönüştürmek için en iyi yolu nedir double
bir etmek int
? Oyuncular kullanılmalı mı?
etc.
:)
Bir dönüştürmek için en iyi yolu nedir double
bir 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.Floor
vb - 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 double
için int
değer aralığının dışında ise bir istisna olmayacaktır int
denetlenmeyen 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.
int
32 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));
using
yönergeleri öğrenmek .
Eğer döküm kullanırsanız, yani (int)SomeDouble
kesirli kısmı kesersiniz. Yani SomeDouble
4.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;
Convert
Sı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