Ben bir bakışta kolayca "iki katrilyon" olarak 2e15
okuyabilir, ancak 2000000000000000
için daha uzun sürer sıfırları, saymak zorunda ve hatalara yol açabilir.Java: Neden bilimsel notasyon kullanarak tamsayı türlerini bildiremiyorum?
neden bir int
veya long
2e9
veya 1.3e6
gibi bir hazır bilgi böyle kullanılarak beyan edemez? Ben 1.0003e3
gibi 10 bir negatif güç gibi 2e-3
veya ondalık basamak sayısından daha azdır bir güç 10, bir kayan noktalı sayı üretecektir anlıyorum ama Java değil neden böyle bildirimleri izin ve Kayan nokta parçasını kesip, sonuçta ortaya çıkan değerin integral olmadığı durumlarda hafif bir uyarı verir mi?
long x = 2e12
long x = 2000000000000 //OK for long
olarak ve int y = 2.1234e3
[Eric Lippert'ın] (http://blogs.msdn.com/b/ericlippert/archive/2012/04/ 03/10251901.aspx): "Derleyicinin neden bu özelliği veya bu özelliği uygulamadığı sorusu sık sık sorulur ve tabiki cevap her zaman aynıdır: ** çünkü kimse onu uygulamamıştır. ** Özellikler kullanılmaz olarak başlatılıyor ve sadece insanlar onları uygulamak için çaba harcadıklarında hayata geçirilirler: hiçbir çaba, özellik yok, bu elbette tatmin edici bir cevap değil, beca genellikle soruyu soran kişi, bu özelliğin o kadar bariz bir şekilde iyi olduğu varsayımını yapmış olup, ** bunu uygulamamak için bir nedene sahip olmamız gerekir. ” –
@BrianRoach: Tam sayının ne olduğunu biliyorum.Kayan nokta biçiminde ifade edilen ancak bir ** integral ** değerini değerlendiren sayıların neden özel bir sebebi var mı diye soruyordum: 2.3e3 == 2300', açık bir döküm olmadan atanamaz. Belki de neden sadece John Kugelman'ın alıntı yaptığıdır. Bu mantıklı olur. Sormamın sebebi, böyle bir özelliğin kötü bir fikir olmasının teknik bir sebebi olup olmadığını merak etmekti. – odougs
Hayır, ilk parçayı aldım ... ama bu senin ikinci örneğiniz değil; 'int y = 2123.4' –