如何修改 android 中的 Double 值

How to modify Double value in android

假设,我有一个 double 值。

double dble = 5.91742691

现在我可以得到小数点后两位数的那个值吗?我的意思是,我可以通过编程方式从那里获得 5.91 吗?

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

如果要将双精度截断为小数点后两位,请执行

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位),但是double可以容纳小数点后的16位,所以long 必须使用以确保安全(可以有 19 位数字)。或者,您可以通过删除包装解析将其保留为 String

对于 #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