How to print a double with two decimals in Android?

AndroidFormatDoubleShowSettext

Android 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 -

  1. 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("#.##");

  2. 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionArcDareView Question on Stackoverflow
Solution 1 - AndroidGozView Answer on Stackoverflow
Solution 2 - AndroidFenilView Answer on Stackoverflow
Solution 3 - AndroidFunkTheMonkView Answer on Stackoverflow
Solution 4 - AndroidM. A. HatabView Answer on Stackoverflow
Solution 5 - AndroidRavind MauryaView Answer on Stackoverflow
Solution 6 - AndroidRanko1977View Answer on Stackoverflow