0.1 + 0.2 = ?

Компилирайте и изпълнете следната програма на Java:

public class SimpleCalc{
 public static void main(String[] args){
    if(0.1 + 0.2 == 0.3){
       System.out.println("Това очаквахме");
    }
    else{
       System.out.println("Какво?!?");
    }
 }
}

Защо в конзолата се изписа “Какво?!?”? Нима наистина 0.1+0.2 не е равно на 0.3?

Този класически пример, който е валиден не само в Java, а вероятно във всички езици за програмиране, е задължителен при изучаването на типовете данни и по-конкретно числата с плаваща запетая. Важно е да бъде дадена ясна представа какво точно се използва, преди да се използва – в противен случай може да се създадат погрешни навици от самото начало, които трудно се изкореняват впоследствие.

Leave a Reply

Your email address will not be published. Required fields are marked *