büyük bir değer tutan bir dizeden bir çift Ayrıştırma: 1.7976931348623157E308
her şeyin belirtilen değer içinaşağıdaki java kod göz Double.MaxValue
String toParse = "1.7976931348623157E308"; //max value of a double in java
double parsed = Double.parseDouble(toParse);
System.out.println(parsed);
mantıklı ve bir doğru çıkış alır.
Şimdi, eğer biri 1.7976931348623158E308
'u ayrıştırmaya çalışırsa (E
artmadan önceki son rakam) yine de konsola yazdırılan maksimum değeri elde edersiniz!
Yalnızca 1.7976931348623159E308
ayrıştırmaya çalıştıktan sonra (yine son rakam artırıldı) ve daha büyük olan Infinity
alır.
İlgili olumsuz değerler için aynı davranış.
Neden ... 8E308
... 7E308
ve Infinity
değil ayrıştırıldı?
Bu, herhangi bir uygulama için geçerli midir? – AlexWien
Sanırım kenar kasalarıyla eğleniyorsunuz. Kaynak koduna baktın mı? –
@AlexWien bunu "kaza" ile tökezledi, şimdi merak ediyorum –