Java 以特殊方式将浮点转换为整数

Java 以特殊方式将浮点转换为整数,java,oop,Java,Oop,我试图通过以下方式将Java中的浮点数转换为整数: 4.55 = 455 12.45 = 1245 11.1234 = 111234 我怎么做 下面是一个例子 double f1 = 4.5; String str = new Double(f1).toString(); str = str.replace(".", ""); Integer i = Integer.parseInt(str); System.out.println(i); 一种选择是这

我试图通过以下方式将Java中的浮点数转换为整数:

4.55 = 455
12.45 = 1245
11.1234 = 111234
我怎么做

下面是一个例子

double f1 = 4.5;

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

    Integer i = Integer.parseInt(str);

    System.out.println(i);

一种选择是这样的:

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

但只有在转换模式保持不变的情况下,这样的方法才会起作用。我指的是从浮点到整数的转换方式。希望这能有所帮助。

如果你想能够处理任意大的数字和任意多的小数,那么你可以使用
BigDecimal
biginger

    BigDecimal number = new BigDecimal(
            "5464894984546489498454648949845464894984546489498454648949845464894984546489498454648949845464894984.1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
    String valueOf = number.toPlainString();
    BigInteger desired = new BigInteger((valueOf.replaceAll("\\.", "")));
    System.out.println(desired);
如果需要,构造函数可以使用double或float

    BigDecimal number = new BigDecimal(Double.MAX_VALUE);
    BigDecimal number = new BigDecimal(Float.MAX_VALUE);
诸如此类:

  public int convert( float numbre) {

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

您可以将数字转换为字符串、删除点并创建新的长字符串:

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

卡巴

转换为字符串,删除点,转换为整数。注意整数可能溢出。乘以100。乘以10000。请注意,如果结果不在
int
范围内(最多超过2000万),您将得到
NumberFormatException