Home > Net >  Bigdecimal userinput or double to Bigdecimal
Bigdecimal userinput or double to Bigdecimal

Time:01-29

I am creating a Currency converter using BigDecimal and now I am suck with an issue.

I have a user-defined number - "Amount" (this is the amount of currency you want to convert)

I am putting that userValue through the scanner class but I have only ever done this successfully with the following :

int userInput = new scanner.nextint();

I would have loved userinput to be passed as a BigDecimal

but my understanding of java is very limited.

would you suggest converting the double to BigDecimal or is there a much simple way.

CodePudding user response:

If you would like to get user input as a BigDecimal then you can use one of Scanner class method nextBigDecimal() To convert existing double to BigDecimal you can use BigDecimal.valueOf() method.

Code sample:


    public static void main(String[] args) {
        var scanner = new Scanner(System.in);
        System.out.println("Enter BigDecimal");
        var number = scanner.nextBigDecimal();
        System.out.println("BigDecimal from user input: "   number);

        var doubleNumber = 2.15;
        var decimal = BigDecimal.valueOf(doubleNumber);
        System.out.println("Double converted to BigDecimal: "   decimal);
    }

Listing:

Enter BigDecimal
2,15
BigDecimal from user input: 2.15
Double converted to BigDecimal: 2.15

Process finished with exit code 0

Keep in mind that while converting double to BigDecimal you may loose some accuracy of data, because double is less accurate comparing to BigDecimal.

CodePudding user response:

You can use nextBigInteger:

Scanner sc = new Scanner(System.in);
BigInteger userInput = sc.nextBigInteger();
  • Related