2012-10-22 24 views
11

Bir veritabanından bazı verileri toplamak ve bazı istatistikleri almak için onları bir arada ekliyorum bunu kullanarak, ama benim bazı verilerin geriye dönük beri sonra hesaplanan toplam bazen (NaN olarak gelmeyecek bir olacaktır sayı) Eğer bir sayı (eğer bir sayı değil) yazıyorsa o zaman bu verileri tablomdan hariç tutuyoruz. (Çift bu durumda) verileri NaN iseNaN kontrol etme ve If

nasıl test ederim?

+0

Ayrıca ondalıklarla ilgileniyor musunuz? – Metalhead

cevap

32

statik yöntemler Float.isNaN(float) ve kullanabileceğiniz Double.isNaN(double) vardır.

double x = ... // whatever calculation you do 

if (Double.isNaN(x)) { 
    ... 
} 
+3

'x' Sayıların herhangi bir sayısal türü veya sarıcısı olabilir ve bu hala çalışır. yani, "çifte" olmak zorunda değildir. –

+0

Ayrıca Float.isNan (x) –

+0

da vardırNaN (x) –

-5

Bu sizin için çalışır.

+8

Bu, NaN! = NaN –

4

NaN'yi iki şekilde test edebilirsiniz. İşlevin

Double.isNaN(x) 

yerleşik veya bu

if (x != x) 

sağlanan x double veya NaN kullanımı ve tuzaklar hakkında bu web sayfasını Bulunan bir float

+1

olarak her zaman yanlış olacaktır. İkinci kod parçası yalnızca x çifttir. Eğer bir sebepten dolayı kod 'Double' kullanırsa, o zaman referansı karşılaştırır. – nhahtdh

+0

Bu nasıl çalışır? Bu x çift, ama bir sayı değil mi? –

+0

@Vash: NaN çok özeldir, muhtemelen kendisiyle eşit olmayan bir şekilde kıyaslandığında gerçek olacağına dair tek bir şeydir. – nhahtdh

İlgili konular