developer tip

Android에서 소수점 두 자리로 double을 인쇄하는 방법은 무엇입니까?

copycodes 2020. 9. 4. 07:36
반응형

Android에서 소수점 두 자리로 double을 인쇄하는 방법은 무엇입니까? [복제]


이 질문에 이미 답변이 있습니다.

어쩌면 이것은 어리석은 질문일지도 모르지만 방법을 만들지 않으면 해결 방법을 추측 할 수 없습니다. 예를 들어 C 에서처럼이를 수행하는 "자연스러운 방법"이있을 수 있습니다. 문제는 다음과 같습니다.

var가 있습니다.

double a;

그리고 소수점 이하 2 ~ 3 자리로만 표시하고 싶습니다. 보여 주려고 할 때 :

Text.setText("Value of a: " + String.valueOf(a));

다음과 같은 것을 제공합니다.

a의 값 : 5.234966145

그리고 나는 단지

a의 값 : 5.23

a의 실제 값을 변경하지 않고 대략적인 숫자를 표시하지만 실수로 작동합니다.


yourTextView.setText(String.format("Value of a: %.2f", a));

DecimalFormat을 사용 하거나String.format("%.2f", a);


DecimalFormat을 사용하기 전에 다음 가져 오기를 사용해야합니다. 그렇지 않으면 코드가 작동하지 않습니다.

import java.text.DecimalFormat;

형식화 코드는 다음과 같습니다.

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case
txtTextField.setText(precision.format(dblVariable));

소수점 이하 두 자리까지 표시하는 데는 두 가지 가능성이 있습니다. 1) 첫째, 소수점이있는 경우에만 표시하고 싶습니다. 예를 들어-i) 12.10은 12.1로 표시되고, ii) 12.00은 12로 표시됩니다. 그런 다음-

DecimalFormat formater = new DecimalFormat("#.##"); 

2) 둘째, 현재 소수점과 관계없이 소수점을 표시하고자합니다. 예를 들어 -i) 12.10은 12.10으로 표시됩니다. ii) 12는 12.00으로 표시됩니다.

DecimalFormat formater = new DecimalFormat("0.00"); 

이것을 사용하십시오 :

DecimalFormat form = new DecimalFormat("0.00");
etToll.setText(form.format(tvTotalAmount) );

참고 : 데이터는 10 진수 형식 (tvTotalAmount)이어야합니다 .


textView2.setText(String.format("%.2f", result));

DecimalFormat form = new DecimalFormat("0.00");
         textView2.setText(form.format(result) );

... 유럽 로케일에서 "NumberFormatException"오류가 발생합니다. 결과를 소수점 십진수 대신 쉼표로 설정하기 때문입니다. textView가 editText의 숫자에 추가되면 오류가 발생합니다. 두 솔루션 모두 미국 및 영국 로케일에서 훌륭하게 작동합니다.

참고 URL : https://stackoverflow.com/questions/8065114/how-to-print-a-double-with-two-decimals-in-android

반응형