假设我有一个双倍值。
double dble = 5.91742691
现在我可以在点之后获得两位数的值。我的意思是说,我能以编程方式从那里得到5.91吗?
另外,假设,如果double值为 X.9XXXXX ,我想从double值中获取一个整数。我的意思是说,我想比较 AFTER-POINT值。为了您的理解, dble 的 AFTER-POINT 值为 91742691 。我怎样才能做到这一点?
答案 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