Reputation: 59
I have a number with 2 decimal places:
x = 12.10
Now, I want to write it as String
:
String string = x.toString();
My output is: 12.1
How can I get 12.10
?
Upvotes: 0
Views: 267
Reputation: 7640
Use BigDecimal
public class ConvertNumber {
public static void main(String[] args) {
System.out.println(ConvertNumber.convertFloatDecimalToString(12.10f));
System.out.println(ConvertNumber.convertStringDecimalToString("12.10"));
}
/**
* Convertion for float value
*
* @param number
* @return
*/
private static String convertFloatDecimalToString(float number) {
return new BigDecimal(number).setScale(2, RoundingMode.HALF_DOWN)
.toString();
}
/**
* Convertion for String
*
* @param number
* @return
*/
private static String convertStringDecimalToString(String number) {
return new BigDecimal(number).setScale(2, RoundingMode.HALF_DOWN)
.toString();
}
}
Upvotes: 0
Reputation: 7521
You can use String.format()
for this.
float x = 12.10;
String myNumStr = String.format("%.2", x);
Upvotes: 0
Reputation: 159874
Use DecimalFormat
String formattedNumber = new DecimalFormat("0.00").format(x);
Upvotes: 2