Q:

Overloading: No suitable method found for function(float)

LATER EDIT: Damn, it was that easy. Yes, I messed up the dimensions and believed char is bigger than float. Sorry for the stupid question. 
I've written this piece of code for a better understanding of primitive overloading in Java:
class Primitive{

    float fl;

    Primitive(){
        fl = 0/9;

    }

    public void info(char c){

        System.out.println("I am a character!");
    }

    public void info(int i){
        System.out.println("I am an integer!");
    }
}

public class Overloading2 {

    public static void main(String[] args){

        Primitive pr = new Primitive();
        pr.info(pr.fl);
    }

}

I don't understand why do I get the following error: No suitable method found for info(float).
To quote from Thinking in Java:  if you have a data type that is smaller
than the argument in the method, that data type is promoted.
So if float is smaller than char, then the output should be I am a character!
What am I missing?

A:

Take a look here, it clearly says that:

float
  4 bytes, IEEE 754. Covers a range from 1.40129846432481707e-45 to 3.40282346638528860e+38 (positive or negative).

and

char
  2 bytes, unsigned, Unicode, 0 to 65,535

So, basically, you can't just pass a float argument to a method which expects parameter of a lesser range.

