Czytelność liczb w konsoli Java

0

Witam mam pewien problem z czytelnością konsoli pisze sobie program, który miałby przeliczać jednostki i mam pewien problem.
Gdy przeliczam jednostki długości i wpisze 7 to wyświetla mi się w konsoli to :
7 Milimetrów to: 0.7000000000000001 Centymetrów 0.07 Decymetrów 0.007 Metrów 7.0E-4 Kilometrów. I moje pytanie dotyczy tych 0.7000000000000001 cm i 7.0E-4 kilometrów. Jak mogę to zmienić żeby było 0.7mm i 0.0007 km? Poniżej wklejam kod:
import java.util.Scanner;
public class Main {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int a;// jednostka
    int a1; // dokladna jednostka liczby
    int b; // Liczba
    double c; // 1 obliczenie
    double d; // 2 obliczenie
    System.out.println("Witaj, wybierz rodzaj jednostki, który chcesz przeliczyć");
    System.out.println("1.Jednostki długości.");
    System.out.println("2.Jednostki pola(kwadratowe).");
    System.out.println("3.Jednostki objętości(sześcienne)");
    System.out.println("4.Jednostki pojemności.");
    System.out.println("5.Jednostki masy.");
    System.out.println("6.Jednostki czasu.");
    System.out.println("7.Temperatura.");
    a = scanner.nextInt();
    System.out.println("A teraz podaj liczbę, która chcesz przeliczyć");
    b = scanner.nextInt();

    switch (a) {
        case 1:
            System.out.println("W jakiej jednostce jest twoja liczba");
            System.out.println("1.Milimetry");
            System.out.println("2.Centymetry.");
            System.out.println("3.Decymetry");
            System.out.println("4.Metry");
            System.out.println("5.Kilometry");
            a1 = scanner.nextInt();
            switch (a1) {
                case 1:
                    System.out.println(b + " Milimetrów to: " + b * 0.1 + " Centymetrów " + b * 0.01 + " Decymetrów " + b * 0.001 + " Metrów " + b * 0.0001 + " Kilometrów ");
            }

    }

}

}

0

Zmieniłem kod dostosowując się do powyższej rady, ale teraz nie mogę używać metod matematycznych na liczbach.
Operator '*' cannot be applied to 'java.lang.String', 'double'.

kod:
import java.util.Scanner;
import java.lang.String;
public class Main {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int a;// jednostka
    int a1; // dokladna jednostka liczby
    int b; // Liczba
    double c; // 1 obliczenie
    double d; // 2 obliczenie
    System.out.println("Witaj, wybierz rodzaj jednostki, który chcesz przeliczyć");
    System.out.println("1.Jednostki długości.");
    System.out.println("2.Jednostki pola(kwadratowe).");
    System.out.println("3.Jednostki objętości(szcześcienne)");
    System.out.println("4.Jednostki pojemności.");
    System.out.println("5.Jednostki masy.");
    System.out.println("6.Jednostki czasu.");
    System.out.println("7.Temperatura.");
    a = scanner.nextInt();
    System.out.println("A teraz podaj liczbę, która chcesz przeliczyć");
    b = scanner.nextInt();
    String liczba = String.format("%d", b);


    switch (a) {
        case 1:
            System.out.println("W jakiej jednostce jest twoja liczba");
            System.out.println("1.Milimetry");
            System.out.println("2.Centymetry.");
            System.out.println("3.Decymetry");
            System.out.println("4.Metry");
            System.out.println("5.Kilometry");
            a1 = scanner.nextInt();
            switch (a1) {
                case 1:
                    System.out.println(liczba + " Milimetrów to: " + liczba * + 0.1 + " Centymetrów " + b * 0.01 + " Decymetrów " + b * 0.001 + " Metrów " + b * 0.0001 + " Kilometrów ");
            }

    }

}

}

1

It's over dla chłopa :P Po co formatujesz liczbę, której będziesz jeszcze używał, a której samej w sobie nie pokazujesz użytkownikowi? Formatuj dopiero na samym końcu, po obliczeniach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1