[英]How to format a decimal number to 2 or 3 digits?
我正在用Eclipse寫一個轉換器,我的結果是9或10個十進制數字,我想將其設置為2或3。這是我的代碼的一部分:
double gr = 0;
if (edtGr.getText().toString().length() > 0) {
gr = Float.parseFloat(edtGr.getText().toString());
}
if (edtNgr.getText().toString().length() > 0) {
gr = (Double.parseDouble(edtNgr.getText().toString())) / 1000000000;
}
edtNgr.setText("" + (gr * 1000000000));
edtGr.setText("" + gr);
這段代碼將克轉換為毫微克,我想要2或3個十進制數字的結果。
嘗試
String.format("%.2f", gr * 1000000000);
對於小數點后三位,
String.format("%.3f", gr * 1000000000);
對於2個小數位,將您的代碼更改為
edtNgr.setText(""+ ((String.format("%.2f", (gr * 1000000000)))));
edtGr.setText("" + ((String.format("%.2f", gr))));
還有3個小數點
edtNgr.setText("" + ((String.format("%.3f", (gr * 1000000000)))));
edtGr.setText("" + ((String.format("%.3f", gr))));
您也可以使用DecimalFormat
。 一種(使用3分)使用它的方法:
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(3);
edtNgr.setText("" + df.format(gr * 1000000000));
edtGr.setText("" +df.format(gr));
您可以使用
double roundOff = Math.round(yourDouble * 1000.0) / 1000.0;
其他方式
BigDecimal doubleVal = new BigDecimal("123.13698");
BigDecimal roundOff = doubleVal.setScale(2, BigDecimal.ROUND_HALF_EVEN);
您可以像這樣使用NumberFormatter
NumberFormat formatter = NumberFormat.getInstance();
formatter.setMaximumFractionDigits(3);
然后像這樣格式化
formatter.format(36.55468865)
這會給輸出36.555
四舍五入55468865
至555
(double)Math.round(value * 100000)/ 100000 ..精度數由零個數表示。
要么
雙倍d = 12345.2145;
BigDecimal bd = new BigDecimal(d).setScale(3,RoundingMode.HALF_EVEN); d = bd.doubleValue();
根據所需的精度更改setScale方法中的第一個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.