2017-03-07 37 views

回答

1

这里有一个例子

double f1 = 4.5; 

    String str = new Double(f1).toString(); 
    str = str.replace(".", ""); 

    Integer i = Integer.parseInt(str); 

    System.out.println(i); 
+1

请注意,如果结果位于“int”范围之外(最多略大于2000000000),您将得到一个'NumberFormatException'。 –

2

一个办法是这样的:

float number = 4.55f; 
int desiredNumber = Integer.parseInt(String.valueOf(number).replaceAll("\\.", "")); 

但是这样的事情如果转换模式将保持不变,只会工作。通过这个我的意思是你想从float转换为int的方式。希望这可以帮助。

0

如果你想能够hanlde任意大的数,任意多的小数位,那么你可以使用BigDecimalBigInteger

BigDecimal number = new BigDecimal(
      "5464894984546489498454648949845464894984546489498454648949845464894984546489498454648949845464894984.1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"); 
    String valueOf = number.toPlainString(); 
    BigInteger desired = new BigInteger((valueOf.replaceAll("\\.", ""))); 
    System.out.println(desired); 

构造可以采取双重或浮动,如果需要

BigDecimal number = new BigDecimal(Double.MAX_VALUE); 
    BigDecimal number = new BigDecimal(Float.MAX_VALUE); 
0

东西像这样:

public int convert(float numbre) { 

    String nmbre = String.valueOf(numbre).replace(".", ""); 
      return Integer.parseInt(nmbre); 
     } 
0

你可以转换将数字转换为字符串,删除点,并创建一个新的Long:

private long removeTheDot(Number number) { 
    return Long.valueOf(number.toString().replace(".", "")); 
} 

Ka-Bam!