簡體   English   中英

在Java中將數字轉換為2位小數

[英]Convert a number to 2 decimal places in Java

我想在運行時將數字轉換為2位小數(總是顯示兩位小數)。 我嘗試了一些代碼,但它只是如此,如下所示

 20.03034 >> 20.03
 20.3 >> 20.3  ( my code only rounds not converts )

但是,我希望它能做到這一點:

 20.03034 >> 20.03
 20.3 >> 20.30 (convert it to two decimal places)

我的代碼如下:

angle = a variable
angle_screen =  a variable

DecimalFormat df = new DecimalFormat("#.##");
angle = Double.valueOf(df.format(angle));
angle_screen.setText(String.valueOf(angle) + tmp);

任何有關如何做到這一點的幫助都會很棒,謝謝。

試試這個new DecimalFormat("#.00");

更新

    double angle = 20.3034;

    DecimalFormat df = new DecimalFormat("#.00");
    String angleFormated = df.format(angle);
    System.out.println(angleFormated); //output 20.30

您的代碼未正確使用小數格式

模式中的0表示強制數字,#表示可選數字。

更新2 :檢查下面的答案

如果你想要0.2677格式為0.27你應該使用new DecimalFormat("0.00"); 否則會是.27

DecimalFormat df=new DecimalFormat("0.00");

使用此代碼可獲得精確的兩個小數點。 即使該值為0.0,它也會給出0.00作為輸出。

相反,如果您使用:

DecimalFormat df=new DecimalFormat("#.00");  

它不會將0.2659轉換為0.27 你會得到像.27這樣的答案。

試試這個: String.format("%.2f", angle);

嘗試

DecimalFormat df = new DecimalFormat("#,##0.00");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM