所以我的計算器給我的答案像30.122345353或類似的東西。Android計算器數字四捨五入
問題 哪能它送到30.122? 這是我的代碼的一部分。我需要它來圓什麼來自應答(ANS + 「」)
這是我的代碼
if (v.getId() == R.id.Badd) if (num2 == 0) flag = true;
else ans = 2 * num1;
tv2.setText(ans + "");
所以我的計算器給我的答案像30.122345353或類似的東西。Android計算器數字四捨五入
問題 哪能它送到30.122? 這是我的代碼的一部分。我需要它來圓什麼來自應答(ANS + 「」)
這是我的代碼
if (v.getId() == R.id.Badd) if (num2 == 0) flag = true;
else ans = 2 * num1;
tv2.setText(ans + "");
您可以使用DecimalFormat
這樣的 -
DecimalFormat decimalFormat = new DecimalFormat("#0.###");
decimalFormat.format(ans);
可以使用DecimalFormater :)
DecimalFormat df=new DecimalFormat("0.000");
String formate = df.format(ans);
double finalValue = (Double)df.parse(formate) ;
這應該可以解決您的問題。但是,如果你想要更多的幫助,這個問題已經回答了在不同的崗位上StackOverflow的:Here
一切順利:)
請讓我知道結果的。
祝你好運!
簡單的方法:
int result = ((int)(yourDouble+0.5));
或:
public Double roundMyValue(String value){
DecimalFormat df=new DecimalFormat("0.000");
return (Double)df.parse(df.format(value)) ;
}
或東西容易:
public Double roundMyValue(String value){
double current=Double.parseDouble(value);
int temp = current*1000;
return (Double)temp/1000;
}
這不回答這個問題。 Sten正在四捨五入到小數點後三位。 –
除了其他答案之外,還可以通過將結果乘以10^n(其中n表示要實現的最後一個重要小數點)然後將其舍入(通過像數學家進行正確舍入後加0.5)然後用10^3回把它再次
也許這樣的方法會做的伎倆:
的Java:
public double rndMyNmb(double number,int decimalPoint);
{
number*=Math.pow(10,decimalPoint);
number=(int)(number+0.5);
return number/Math.pow(10,decimalPoint);
}
OFC你可以寫在方法內部的一切,一個班輪:
return (double)((int)(number*Math.pow(10,decimalPoint)+0.5)/Math.pow(10,decimalPoint));
謝謝,但我真的不明白我在哪裏寫代碼:/ im new在這個 – StenK
可以說你的號碼存儲的值被稱爲:myNumber –
然後你可以使用我提供的方法你:'myNumber = rndMyNmb(myNumber,n); ''對於n只是寫出你想要回來的小數的數量......那就是所有的魔法:) –
謝謝,但我究竟應該在哪裏輸入該代碼? – StenK
嗨,有兩種方法可以做到這一點。您可以創建一個函數來將任意數字格式化爲3位小數,也可以將我向您顯示的代碼放在「tv2.setText」語句的上方。祝你好運:)讓我知道如果你需要其他的東西 – TejjD
如果我只是複製你的代碼而不做其他任何事情,那麼它不會做任何事情。 – StenK