Wprowadzanie z inerfejsu liczb z przecinkiem.

0

Cześć,

Jak zrobić, żeby użytkownik mógł wprowadzić do programy liczby z przecinkiem ?

import java.util.Scanner;
class product{
public static void main(String[] args) {

  float arg1, arg2; 
  Scanner input = new Scanner(System.in); 
  System.out.print("Input first argument: ");
  arg1 = input.nextInt(); 
  System.out.print("Input second argument: ");
  arg2 = input.nextInt(); 



 float product = arg1 * arg2; 

  System.out.println ( "the product of 2 arguments is: " + product);
                                    }
          }

Kiedy odpalam ten kod, program nie pozwala wprowadzić liczb z przecinkiem.

1

Użyj wczytywania double lub float

float liczbaFloat = new Scanner(System.in).nextFloat();
double liczbaDouble = new Scanner(System.in).nextDouble();

Pamiętaj, że format zapisu liczby zależy od systemu operacyjnego! Jeśli masz system polski - przecinek, jeśli angielski - kropka.

1

Możesz też wczytać string i go sparsować. Np. użyć metody replace żeby zamienić przecinek na kropkę, a później użyć Double.parseDouble(twojString)
Możesz też później użyć wyrażenia regularnego żeby wyciąć wszystko co nie jest cyfrą i kropką .replaceAll("[^0-9.]", "")

1

Zmień ustawienia lokalne:

    Scanner in = new Scanner(System.in);
    in.useLocale(Locale.forLanguageTag("pl"));
    System.out.println("Wpisz liczbę z przecinkiem:");
    float a = in.nextFloat();
    in.useLocale(Locale.ENGLISH);
    System.out.println("Wpisz liczbę z kropką:");
    float b = in.nextFloat();
    System.out.println("a = "+ a +", b = "+ b);

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