How to print a double with two decimals in Android?
AndroidFormatDoubleShowSettextAndroid Problem Overview
Maybe this is a silly question, but I cannot guess how to solve it if it's not creating a method. Maybe there's a "natural way" to do it, like in C for example. Here's the problem:
I have a var:
double a;
And I want to show it only with 2 or 3 decimals. When I try to show it:
Text.setText("Value of a: " + String.valueOf(a));
It gives something like:
> Value of a: 5.234966145
And i would want just
> Value of a: 5.23
Without changing the real value of a so it shows the approximate number but works with the real number.
Android Solutions
Solution 1 - Android
yourTextView.setText(String.format("Value of a: %.2f", a));
Solution 2 - Android
For Displaying digit upto two decimal places there are two possibilities -
-
Firstly, you only want to display decimal digits if it's there. For example - i) 12.10 to be displayed as 12.1, ii) 12.00 to be displayed as 12. Then use-
DecimalFormat formater = new DecimalFormat("#.##");
-
Secondly, you want to display decimal digits irrespective of decimal present For example -i) 12.10 to be displayed as 12.10. ii) 12 to be displayed as 12.00.Then use-
DecimalFormat formater = new DecimalFormat("0.00");
Solution 3 - Android
You can use a DecimalFormat, or String.format("%.2f", a);
Solution 4 - Android
Before you use DecimalFormat you need to use the following import or your code will not work:
import java.text.DecimalFormat;
The code for formatting is:
DecimalFormat precision = new DecimalFormat("0.00");
// dblVariable is a number variable and not a String in this case
txtTextField.setText(precision.format(dblVariable));
Solution 5 - Android
use this one:
DecimalFormat form = new DecimalFormat("0.00");
etToll.setText(form.format(tvTotalAmount) );
Note: Data must be in decimal format (tvTotalAmount)
Solution 6 - Android
textView2.setText(String.format("%.2f", result));
and
DecimalFormat form = new DecimalFormat("0.00");
textView2.setText(form.format(result) );
...cause "NumberFormatException" error in locale for Europe because it sets result as comma instead of point decimal - error occurs when textView is added to number in editText. Both solutions are working excellent in locale US and UK.