# Converting the Amount from BigDecimal to String in Specific Format in Java

Could anyone please help me in writing a utility method which takes BigDecimal as input and return String as output in following format
If input is 15.91 (BigDecimal)
Output is 000000001591 ( String)
Input 115.91
Output 000000000011591
Input is 1115.91
Output is 000000111591
Input is 11115.91
Output is 000001111591
The output is 12 digit value(it contains Zeros +Dollar Amount +cents)
The entire thing represents an amount , last two digits represents cents
As the amount gets increased the number of zeros gets reduced
There is some performance tests going on I need this as soon as possible, help is appreciated
###### Who is Participating?

Commented:
private String convert(String decimalString){
String converted = "";
if (decimalString.indexOf(".") >= 0){
String firstPart = decimalString.substring(0,
decimalString.indexOf("."));
String lastPart =
decimalString.substring(decimalString.indexOf( "."));
if (lastPart.length() > 0) lastPart =
lastPart.substring(1);
converted = firstPart + lastPart;
}
return converted;
}
0

Author Commented:
I need this Solution ASAP
0

Commented:
function prependZeros(float val)
{
String s = String.valueOf(i);
if(s.length() < 12)
{
int len = s.length();
int remainingLength = 12 - len;
}
StringBuffer newString = null;
while(remainingLength > 0)
{
newString.append(0);
}
newString.append(s);
}
0

Author Commented:
HI darkyin87,
could you please take some values (BigDecimal input and String output)and and expalin me about the solution
0

Commented:
public String BigDecimalToString(BigDecimal number)
{
//Convert the BigDecimal to String
String str = number.toString();

//Find out the length of the string
int len = str.length();

//Find the number of zeros to be prepended by subtracting the length of the string from 12
int preprendLength = 12 - len;

//Create a new stringbuffer
StringBuffer newString = new StringBuffer("");

//Intialize the newString with the number of zeros you need
while(prependLength-- > 0)
{
newString.append("0");
}

//Finally append the orignal string too
newString.append(str);

}
0

Author Commented:
HI darkyin87,
thanks for sending me the code it worked for me, i need one more help that is i am passing

String input =  1115.91 , I need the out put like this String output = 111591
I need to elimate decimal(.)
Can you help me how can i do this
0

Author Commented:
Hi darkyin87,
thank you very much, every thing is working for me now
0

Commented:
Be careful with BigDecimals and calculation. Make sure that any values a BigDecimal is created with comes in as something like String. You will get floating point errors doing something like
new BigDecimal(53);
new BigDecimal("53);
0

Commented:
oops, meant
new BigDecimal("53");
0

Commented:
BigDecimal nput = new Bigdecimal("15.91");

NumberFormat format = new DecimalFormat("000000000000");

format.format(new BigDecimal(input.toString().replaceAll("\\.", "")));
0

Commented:
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.