Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

java
communitycreator

What is NumberUtils.createBigDecimal() in Java?

abhilash

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

createBigDecimal() is a staticthe methods in Java that can be called without creating an object of the class. method of the NumberUtils class that is used to convert a string to a BigDecimal datatype. If the string cannot be converted to a BigDecimal value, then NumberFormatException will be thrown by the method.

How to import NumberUtils

The definition of NumberUtils can be found in the Apache Commons Lang package, which we can add to the Maven project by adding the following dependency to the pom.xml file:


<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
</dependency>

For other versions of the commons-lang package, refer to the Maven Repository.

You can import the NumberUtils class as follows:


import org.apache.commons.lang3.math.NumberUtils;

Syntax


public static BigDecimal createBigDecimal(final String str)

Parameters

  • final String str: The string to convert.

Return value

This method returns the converted BigDecimal value.

Code

The code below shows how the NumberUtils.createBigDecimal() method works in Java.

import org.apache.commons.lang3.math.NumberUtils;

public class Main{

    public static void main(String[] args){
        // Example 1
        String valueToConvert = "234323232.232123";
        System.out.printf("NumberUtils.createBigDecimal(%s) = %s", valueToConvert, NumberUtils.createBigDecimal(valueToConvert));
        System.out.println();

        // Example 2
        valueToConvert = "234323wrf";
        System.out.printf("NumberUtils.createBigDecimal(%s) = %s", valueToConvert, NumberUtils.createBigDecimal(valueToConvert));
        System.out.println();
    }
}

Output

The output of the code will be as follows:


NumberUtils.createBigDecimal(234323232.232123) = 234323232.232123
Exception in thread "main" java.lang.NumberFormatException: Character w is neither a decimal digit number, decimal point, nor "e" notation exponential mark.
	at java.base/java.math.BigDecimal.<init>(BigDecimal.java:518)
	at java.base/java.math.BigDecimal.<init>(BigDecimal.java:401)
	at java.base/java.math.BigDecimal.<init>(BigDecimal.java:834)
	at org.apache.commons.lang3.math.NumberUtils.createBigDecimal(NumberUtils.java:1004)
	at Main.main(Main.java:13)

Explanation

Example 1

  • string value = 234323232.232123

The method returns 234323232.232123 as the conversion is successful.

Example 2

  • string value = 234323wrf

The method throws NumberFormatException as the conversion is unsuccessful.

RELATED TAGS

java
communitycreator

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring