所以我的计算器给了我像 30.122345353 这样的回答。
问题 我怎样才能把它变成 30.122 ? 这是我的代码的一部分。我需要它来回答来自(ans +"")
的答案这是我的代码
if (v.getId() == R.id.Badd) if (num2 == 0) flag = true;
else ans = 2 * num1;
tv2.setText(ans + "");
答案 0 :(得分:2)
将double舍入为int的简单方法:
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;
}
答案 1 :(得分:1)
您可以像这样使用DecimalFormat
-
DecimalFormat decimalFormat = new DecimalFormat("#0.###");
decimalFormat.format(ans);
答案 2 :(得分:1)
您可以使用DecimalFormater:)
DecimalFormat df=new DecimalFormat("0.000");
String formate = df.format(ans);
double finalValue = (Double)df.parse(formate) ;
那应该可以解决你的问题。但是,如果您需要其他帮助,可以在StackOverflow上的其他帖子中回答这个问题:Here
一切顺利:)
请告诉我结果。
祝你好运!答案 3 :(得分:1)
This solution提供了一种将数字舍入到一定数量小数位的方法
答案 4 :(得分:1)
你可以在其他答案旁边,也可以通过将结果乘以10 ^ n来舍入数字,其中n代表你想要达到的最后一个有效小数点,然后通过转换为int来对此进行舍入(对于数学家来说正确的舍入加0.5)然后再将其除以10 ^ 3
也许像这样的方法可以解决问题:
爪哇:
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));