|
查看: 1300|回复: 7
|
JAVA Double 问题 如何自捉 Double 的value里的小数点?
[复制链接]
|
|
|
如何自捉 Double 的value里的小数点?
e.g.
double abcd =123456789012345.99;
我要的是 0.99。
不能用decimal format. |
|
|
|
|
|
|
|
|
|
|
发表于 3-4-2008 03:05 PM
|
显示全部楼层
double abcd =123456789012345.99;
double ABC = (double) (abcd - (int) abcd); |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 3-4-2008 03:36 PM
|
显示全部楼层
不能,还有的是
java 里 (123456789012345.99 -123456789012345)是不等于 0.99 的 |
|
|
|
|
|
|
|
|
|
|
发表于 4-4-2008 12:08 AM
|
显示全部楼层
这样能吗? 
public class t1
{
public static void main(String args[])
{
double a = 123456789.99d;
float f = (float)(a-(long)a);
System.out.println(String.valueOf(f));
}
} |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-4-2008 09:26 AM
|
显示全部楼层
谢谢BC2207,当数字小过10 degit的时候,答案是0.99,第十一个开始就不准了。
double a = 12345678901.99;
float f = (float)(a-(long)a);
System.out.println(String.valueOf(f));
answer
0.9899998
但是还是很感谢你 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-4-2008 09:42 AM
|
显示全部楼层
问题解决了,
double a = 12345678901234.99*100;
String f = Long.toString(((long) a)%100);
System.out.println(String.valueOf(f));
数目不能超过14个,要不问题还是会出现。 |
|
|
|
|
|
|
|
|
|
|
发表于 5-4-2008 02:34 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 7-4-2008 09:52 AM
|
显示全部楼层
haha...差不多,但是不是薪水,是保险费.... 印尼盾...哈哈所以才那么大
谢了. |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|