Hello coders, today we are going to solve **Java BigDecimal HackerRank Solution**.

**Problem**

Java’s BigDecimal class can handle arbitrary-precision signed decimal numbers. Let’s test your knowledge of them!

Given an array,** s**, of

**real number strings, sort them in descending order — but wait, there’s more! Each number must be printed in the exact same format as it was read from stdin, meaning that**

*n***.1**is printed as

**.1**, and

**0.1**is printed as

**0.1**. If two numbers represent numerically equivalent values (e.g.,

**.1≡0.1**), then they must be listed in the same order as they were received as input).

Complete the code in the unlocked section of the editor below. You must rearrange array ** s**‘s elements according to the instructions above.

**Input Format**

The first line consists of a single integer, ** n**, denoting the number of integer strings.

Each line

**of the**

*i***subsequent lines contains a real number denoting the value of**

*n***.**

*s*_{i}**Constraints**

*1 ≤ n**≤**200*- Each
has the most*s*_{i}digits.*300*

**Output Format**

Locked stub code in the editor will print the contents of array ** s **to stdout. You are only responsible for reordering the array’s elements.

**Sample Input **

```
9
-100
50
0
56.6
90
0.12
.12
02.34
000.000
```

**Sample Input **

```
90
56.6
50
02.34
0.12
.12
0
000.000
-100
```

**Solution –** **Java BigDecimal**

import java.math.BigDecimal; import java.util.*; class Solution{ public static void main(String []args){ //Input Scanner sc= new Scanner(System.in); int n=sc.nextInt(); String []s=new String[n+2]; for(int i=0;i<n;i++){ s[i]=sc.next(); } sc.close(); //Write your code here for(int i=0;i<n;i++) { //inserting string values to bigdecimal BigDecimal First=new BigDecimal(s[i]); int index=i; for(int j=i+1;j<n;j++) { //second BigDecimal to compare the first Bigdecimal BigDecimal Second=new BigDecimal(s[j]); //comparing if First element is greater that second element //if the First element is greater than Second element than compareTo() returns 1 if(Second.compareTo(First)==1){ First=Second; index=j; } } //temporary variable to store s[i] value String temp=s[i]; s[i]=s[index]; s[index]=temp; } //Output for(int i=0;i<n;i++) { System.out.println(s[i]); } } }

**Disclaimer:** The above Problem ( ** Java BigDecimal** ) is generated by

**Hacker Rank**but the Solution is Provided by

**CodingBroz**. This tutorial is only for

**Educational**and

**Learning**Purpose.