你需要先确认下小数准备保留小数点后几位。 double num = 12345.678; long partInt = (long)num; // 强转直接得到整数部分 short partPoint = (short)((num - partInt) * 100); // 如果只保留2位
嗯.谢谢你给我这个思路.我自己再试下 我设定的是double d=1234.5678
public class Test { public static void main(String[] args) { double d = 1234.123; long l = Long.parseLong(String.valueOf(d).split("\\.")[0]); short s = Short.parseShort(String.valueOf(d).split("\\.")[1]); System.out.println(d); System.out.println(l); System.out.println(s); } } 这样应该可以,具体就是先转成String类型,然后以"."作为分割符,调用string的split方法,最后转成相应的类型。
double num = 12345.678;
long partInt = (long)num; // 强转直接得到整数部分
short partPoint = (short)((num - partInt) * 100); // 如果只保留2位
我设定的是double d=1234.5678
public class Test {
public static void main(String[] args) {
double d = 1234.123;
long l = Long.parseLong(String.valueOf(d).split("\\.")[0]);
short s = Short.parseShort(String.valueOf(d).split("\\.")[1]);
System.out.println(d);
System.out.println(l);
System.out.println(s);
}
}
这样应该可以,具体就是先转成String类型,然后以"."作为分割符,调用string的split方法,最后转成相应的类型。