Eslatma: Butun sonlar turida ham faqat long turini L qo'shimchasi bilan o'zlashtirish mumkin.
Masalan:
long a = 10;
long a = 10L;
Bu yerda agar o'zgaruvchini long turida o'zlashtirmoqchi bo'lsak pasdagi ko'rinish afzalroq.Chunki hamma Butun sonlar turi dastlab standart int sifatida qabul qilinadi va belgilangan turiga Java compiler tomonidan konvertatsiya qilinadi.
Ya'ni:
short a = 10; //int avtomatik short ga konvertatsiya qilinadi.
Kasr sonlar moliyaviy hisob-kitoblar uchun mos emas.
Masalan:
System.out.println(2.0 - 1.1);
Natija -> 0.8999999999999999. Biz kutgan natija esa 0.9.
Bunday yaxlitlash xatolari kasr sonlarning ikkilik sanoq sistemasida ifodalanishidan kelib chiqadi.Ikkilik sanoq sistemasida 1/10 kasrning aniq ifodasi mavjud emas, xuddi o'nlik sanoq sistemasida 1/3 kasrning aniq ifodasi bo'lmagani kabi.
Agar aniq hisob-kitoblarga oid dasturlarda biz BigDecimal classdan foydalanamiz.(Keyingi mavzularda tushuntirib o'taman).
Masalan:
long a = 10;
long a = 10L;
Bu yerda agar o'zgaruvchini long turida o'zlashtirmoqchi bo'lsak pasdagi ko'rinish afzalroq.Chunki hamma Butun sonlar turi dastlab standart int sifatida qabul qilinadi va belgilangan turiga Java compiler tomonidan konvertatsiya qilinadi.
Ya'ni:
short a = 10; //int avtomatik short ga konvertatsiya qilinadi.
Kasr sonlar moliyaviy hisob-kitoblar uchun mos emas.
Masalan:
System.out.println(2.0 - 1.1);
Natija -> 0.8999999999999999. Biz kutgan natija esa 0.9.
Bunday yaxlitlash xatolari kasr sonlarning ikkilik sanoq sistemasida ifodalanishidan kelib chiqadi.Ikkilik sanoq sistemasida 1/10 kasrning aniq ifodasi mavjud emas, xuddi o'nlik sanoq sistemasida 1/3 kasrning aniq ifodasi bo'lmagani kabi.
Agar aniq hisob-kitoblarga oid dasturlarda biz BigDecimal classdan foydalanamiz.(Keyingi mavzularda tushuntirib o'taman).