(int)myDouble
(int)Math.Truncate(myDouble)
'dan farklı mı?(int) myDouble (int) Math.Truncate (myDouble) 'dan farklı mıdır?
diğer üzerinden bir tercih için bir neden var mı?
(int)myDouble
(int)Math.Truncate(myDouble)
'dan farklı mı?(int) myDouble (int) Math.Truncate (myDouble) 'dan farklı mıdır?
diğer üzerinden bir tercih için bir neden var mı?
Math.Truncate
hiçbir kesirli kısmı ile çift olarak sonuca tutmak için gereken zaman içindir. Eğer bir int için onu icat etmek istiyorsanız, sadece doğrudan cast kullanın.
Düzenleme:
Eğer ayrılmaz bir türe çift veya şamandıra değerinden dönüştürdüğünüzde, değer kesilir: Referans olarak aşağıda “Explicit Numeric Conversions Table” alakalı dokümandır.
olarak myDouble çok geniş olduğunda (int)Math.Truncate(myDouble)
aynı şekilde başarısız olur Ignacio Vazquez-Abrams(int)myDouble
tarafından işaret etti.
Yani çıktıda hiçbir fark yoktur, ancak (int)myDouble
hızlı çalışıyor.
Benim naif tahminim örtük aynı olsa bile, eski dil özelliklerine bağlıdır iken ikincisi, CLR API bir açık bir şekilde tanımlanmış bir yönü olduğunu olurdu. –
'Math.Truncate' kullanılmasının gereksiz bir adım olduğunu düşünürdüm. – Oded
'Math.Truncate', sonucunuzu kesirli parça içermeyen bir 'double' olarak tutmanız gerektiğinde amaçlanmıştır. Bunu bir "int" olarak adlandırmak istiyorsanız, yayını kullanın. – Douglas