如何在android中修改Double值

时间:2016-03-16 01:01:18

标签: java double

假设我有一个双倍值。

double dble = 5.91742691

现在我可以在点之后获得两位数的值。我的意思是说,我能以编程方式从那里得到5.91吗?

另外,假设,如果double值为 X.9XXXXX ,我想从double值中获取一个整数。我的意思是说,我想比较 AFTER-POINT值。为了您的理解, dble AFTER-POINT 值为 91742691 。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:-1)

如果要将两位小数截断为2位,请执行

double twoDecDbl = (int)(dble * 100) / 100.0; // 5.91

double twoDecDbl = Math.floor(dble * 100) / 100; // 5.91

但是,如果你想把小数位后面的数字作为一个整数(我不知道你为什么要这样做),那么就做

long decimals = Long.parseLong(("" + dble).split("\\.")[1]); // 91742691

注意int的最大值是2,147,483,647(那里有10位数),但是小数点后面的一个双精度数可以保持16位,因此必须long用于保持安全(可以有19位数)。或者,您可以通过删除包装解析将其保留为String

答案 1 :(得分:-1)

对于#1试一试

NumberFormat formatter = new DecimalFormat("#0.00");
String s = formatter.format(dble);
double num = Double.valueOf(s);

dble = Math.floor(dble * 100) / 100;

对于#2试一试

double num = dble - (int)dble;

如果Integer.MIN_VALUE < dble < Integer.MAX_VALUE