gerazoli
gerazoli

Reputation: 39

converting float to integer in a special way

I am trying to convert float number in Java to integer on the following way:

4.55 = 455
12.45 = 1245
11.1234 = 111234

How can I do it?

Upvotes: 1

Views: 100

Answers (5)

jmrah
jmrah

Reputation: 6222

You can convert the number to a String, remove the dot, and create a new Long:

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

Ka-Bam!

Upvotes: 0

Younes Ouchala
Younes Ouchala

Reputation: 300

Something like that :

  public int convert( float numbre) {

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

Upvotes: 0

Viktor Mellgren
Viktor Mellgren

Reputation: 4506

If you want to be able to hanlde arbitrarily large numbers and arbitrarily many decimals, then you can use BigDecimal and BigInteger

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

Constructor can take double or float if needed

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

Upvotes: 0

Andrei Olar
Andrei Olar

Reputation: 2358

One option would be like this:

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

But something like this will only work if the conversion pattern will stay the same. By this I mean the way you want to convert from float to int. Hope this helps.

Upvotes: 2

Anwarul Islam
Anwarul Islam

Reputation: 141

here is an example

double f1 = 4.5;

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

    Integer i = Integer.parseInt(str);

    System.out.println(i);

Upvotes: 1

Related Questions