作者ogamenewbie (._.)
看板java
标题Re: [问题] 取整数问题[会自动进位]
时间Fri Oct 24 00:28:51 2008
: 实际上 我要处理的数据大概是这样的形式: d2=0.1234567899999999999999999
: 我要抓出第8位数.也就是8这个数[前几位抓到也没关系]
: 我先把d2乘以10的8次方 变成12345678.99999999999999999
: 想抓出整数12345678
: 但至今试过许多方法.仍然会取成12345679
: 想请教一下 该如何处理这样的问题呢?
: 感谢
: 推 drinks:用BigDecimal运算? 10/23 12:41
: TO楼上
: 我有试着用过
: 虽然BigDecimal可以在取比较精准的位数下进行加 减 乘 除的运算
: 但似乎也无法使用什麽方法将我要的整数位取出来
: 甚至最後输出前,转成DOUBLE.还是一样9会自动进位
BigDecimal a;
Scanner s = new Scanner(System.in);
a = s.nextBigDecimal();
System.out.println(a.multiply(new BigDecimal("100000000"))
.setScale(0, RoundingMode.DOWN));
--
run:
0.1234567899999999999999999
12345678
BUILD SUCCESSFUL (total time: 14 seconds)
--
你可以把 method 看完, 就会发现有 setScale
太久没写, 都忘记是叫 method 了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.33.7
※ 编辑: ogamenewbie 来自: 218.160.33.7 (10/24 00:37)
1F:→ hahakyo:感谢 我後来使用的方法和这类似 但您的说明让我更清楚了 10/24 12:02