可能重复:
Round a double to 2 significant figures after decimal point
如何在点后将double转换为2?
例如:
double x=123.45678;
我需要x=123.45
(在java for android中)
提前致谢
答案 0 :(得分:34)
x = Math.floor(x * 100) / 100;
答案 1 :(得分:17)
试试这段代码
double x=123.45678;
DecimalFormat df = new DecimalFormat("#.##");
String dx=df.format(x);
x=Double.valueOf(dx);
答案 2 :(得分:10)
使用此,
NumberFormat formatter = new DecimalFormat("#0.00");
x=formatter.format(x);
答案 3 :(得分:8)
使用NumberFormat类来正确格式化数字。
特别是在您的情况下,您可以执行以下操作。虽然这不是L10N友好的。
mNumberFormat = NumberFormat.getInstance();
mNumberFormat.setMinimumFractionDigits(2);
mNumberFormat.setMaximumFractionDigits(2);
答案 4 :(得分:5)
格式化double的最佳方法是使用NumberFormat类:http://developer.android.com/reference/java/text/NumberFormat.html
你会做这样的事情:
NumberFormat nf = NumberFormat.getInstance(); // get instance
nf.setMaximumFractionDigits(2); // set decimal places
String s = nf.format(x);
你也可以把它重新演绎为双倍。
答案 5 :(得分:1)
如果你想要正确舍入两位数字,我会选择BigDecimals:
BigDecimal bd = new BigDecimal(x);
System.out.println(bd.setScale(2,BigDecimal.ROUND_HALF_EVEN).toPlainString());