BigDecimal ulp() Method in Java

The java.math.BigDecimal.ulp() is an inbuilt method in Java that returns the size of an ulp(unit in the last place) of this BigDecimal.

  • An ulp of a nonzero BigDecimal value is defined as the positive distance between this value and the BigDecimal value next larger in magnitude with the same number of digits.
  • An ulp of a zero value is numerically equal to 1 with the scale of this. The result is stored with the same scale as this so the result for zero and nonzero values is equal to [1, this.scale()].

Syntax:

public BigDecimal ulp()

Parameter: The method does not accept any parameter.

Return value: This method returns the size of an ulp of BigDecimal.

Examples:

Input: 4.25
Output: 0.01

Input: 1789
Output: 1

Below programs illustrates the above mentioned method:
Program 1:




// Program to illustrate the ulp() method of BigDecimal 
  
import java.math.*;
  
public class gfg {
  
    public static void main(String[] args)
    {
  
        // Assigning BigDecimal object
        BigDecimal b1 = new BigDecimal("1789");
        BigDecimal b2 = new BigDecimal("4.25");
  
        // Assigning ulp value of BigDecimal object b1, b2 to b3, b4
        BigDecimal b3 = b1.ulp();
        BigDecimal b4 = b2.ulp();
  
        // Printing b3, b4 values
        System.out.println("ULP value of " + b1 + " is " + b3);
        System.out.println("ULP value of " + b2 + " is " + b4);
    }
}


Output:

ULP value of 1789 is 1
ULP value of 4.25 is 0.01

Program 2:




// Program to illustrate the ulp() method of BigDecimal 
  
import java.math.*;
  
public class gfg {
  
    public static void main(String[] args)
    {
  
        // Assigning BigDecimal object
        BigDecimal b1 = new BigDecimal("78645");
        BigDecimal b2 = new BigDecimal("4.252547");
  
        // Assign ulp value of BigDecimal object b1, b2 to b3, b4
        BigDecimal b3 = b1.ulp();
        BigDecimal b4 = b2.ulp();
  
        // Printing b3, b4 values
        System.out.println("ULP value of " + b1 + " is " + b3);
        System.out.println("ULP value of " + b2 + " is " + b4);
    }
}


Output:

ULP value of 78645 is 1
ULP value of 4.252547 is 0.000001

Reference: https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#ulp()