Ne zaman yerine çift ondalık kullanmalıyım?
double
(float
) decimal
yerine üç avantaj sayabilirim:
- Daha az bellek kullanır.
- Kayan nokta matematik işlemleri daha hızlıdır, çünkü doğal olarak işlemci tarafından desteklenmektedir.
- Can numaralar daha büyük bir aralığı temsil eder.
Ama bu avantajlar sadece hesaplama yoğun operasyonlar, bu modelleme yazılımı gibi için geçerli gibi görünüyor. Tabii ki, çiftler hassas gereklidir, finansal hesaplamalar gibi durumlarda kullanılmamalıdır. Yani orada hiç "uygulamalar? normal decimal
yerine double
(float
) seçmek için herhangi bir pratik faydaları
Eklemek için düzenlenebilir: Bütün büyük cevaplar için teşekkürler, ben onlardan öğrendim.
Bir başka soru: Bir kaç kişi çiftler daha doğrusu gerçek sayıları temsil edebilecek bir noktaya işaret etti. Ben ilan ettiğinde genellikle daha doğru olarak temsil ettiğini düşünür. Ama doğruluğu kayan nokta işlemi gerçekleştirildiğinde (bazen önemli ölçüde) düşürebilir bu doğru bir ifade midir?
CEVAP
Oldukça iyi avantajları özetlenmiştir düşünüyorum. Ancak bir nokta eksik. decimal
türünü temsil eden daha doğru olurtemel 10sayılar (örneğin bu para birimi/mali hesaplamalarda kullanılır). Genel olarak, double
yazın en azından büyük bir kesinlikle (birisi eğer yanılıyorsam beni düzeltin) ve keyfi reel sayılar için kesinlikle daha hızlı olarak sunacak. Sonuç ise basit: kullanmak için hangi göz önüne alındığında, her zaman decimal
sunan base 10
doğruluk ihtiyacın yoksa double
kullanın.
Düzenleme:
Operasyon sonrası kayan nokta sayıları doğruluğunu düşüş hakkında ek sorunuza gelince, bu biraz daha ince bir konu. Gerçekten de, kesinlik (doğruluk için birbirinin terimi kullanıyorum) her işlem yapılır sonra giderek azalacak. Bunun nedeni iki nedeni vardır: a) hatta bazı numaraları (en açık ondalık) olamaz gerçekten temsil kayan nokta şeklinde, b) yuvarlama hataları meydana gibi yaptığını hesaplama tarafından el. Bu hataları çok düşündüm ancak emri için yeterince önemli olup olmadığını büyük ölçüde bağlama çalıyorsunuz nasıl () bağlıdır. Her durumda, eğer sen de istersen karşılaştırın iki kayan noktalı sayı olmalıdır teori eşdeğer (ama geldi de kullanarak farklı hesaplamalar), izin ver bir dereceye kadar tolerans (ne kadar değişir, ama genellikle çok küçük).
Hassasiyetler hataları tanıttı olabilir belirli durumlarda daha ayrıntılı bir bakış için, Wikipedia article Doğruluk bölümüne bakın. Eğer derinlemesine (ve) matematiksel tartışma kayan nokta sayı/işlemleri makine düzeyinde bir ciddiye istiyorsanız son olarak, 14* *sık sık alıntılanan makale okumaya çalışın.
Ne zaman bir form's opaklık ayarı...
Ne zaman yerine Memcache Memcached kul...
Ne zaman bir sınıf yerine bir yapı kul...
Phtml nedir ve ne zaman kullanmalıyım ...
Ne zaman h:h yerine outputLink:command...