作者tatibana31 (橘三十一)
看板java
标题Re: [问题] 取整数问题[会自动进位]
时间Thu Oct 23 23:08:00 2008
※ 引述《hahakyo (大豪院邪鬼)》之铭言:
: 如题
: 举例而言
: double d1 = 4.9999; //想要抓出整数位4 可利用
: int c1 = (int)d1; //如此c1可得我想要的值4
: 但是. 当小数点位数太多时 例如 d1=4.99999999999999999999;
: 那麽以我上面的写法 得到的数值会变5 也就是自动进位了
: 实际上 我要处理的数据大概是这样的形式: d2=0.1234567899999999999999999
: 我要抓出第8位数.也就是8这个数[前几位抓到也没关系]
: 我先把d2乘以10的8次方 变成12345678.99999999999999999
: 想抓出整数12345678
: 但至今试过许多方法.仍然会取成12345679
: 想请教一下 该如何处理这样的问题呢?
: 感谢
好吧....说实在的,我不清楚你要的逻辑是啥?但是.....我刚用String转
完全没有进位问题,程式码如下:
double number = 0.1234567899999;
System.out.println(String.valueOf(number).substring(0,10));
我会捉到的东西是 0.12345678,萤幕也是这样显示,so....小数点下第八位
对String而言是第10个character....捉了就中了....
您要不要再试试?(其实最主要还是要看您需要解题的逻辑长怎样,不然用暴力法对单
一个案根本没有意义....)
搞不好NumberFormat这个class就可以解您的问题也说不定....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.107.41
1F:推 hahakyo:您可以抓的到是因为您小数点下的9不够多@@ 太多就会进位 10/23 23:19
2F:推 hahakyo:不过後来有用其他方法 暂时解决问题了@@" 感谢 10/23 23:26
3F:推 userControl:有人可以问完问题,解出来就闪人的吗= = 10/24 01:09
4F:推 hahakyo:to楼上 不好意思 我没那个意思 忽略说明了 和下篇类似方法 10/24 12:00