2014-01-31 2 views
4

я определил метод с одним параметром типа поплавка показано ниже:Java- Почему аргумент метода обрабатывает значение float как двойное значение?

public float getValue(float value){ 

    return value; 
} 

Когда я называю этот метод, передавая значение с плавающей точкой сказать 10,1201 показано ниже:

float value = methodReturnTest.getValue(10.1201); 

Мой IDE говорит для приведения аргумента в float. Я попытался выполнить поиск, но не смог получить соответствующий ответ. поэтому отправляем его. Пожалуйста, объясните.

Спасибо.

+4

прошлое как ..10.1201f..i.e. 'f' в конце ... по умолчанию требуется как double –

+2

http://stackoverflow.com/questions/9748160/why-f-is-placed-after-float-values ​​ – Reddy

+2

Я считаю, что это сводится к тому, как компилятор обрабатывает цифры. В этом случае вы можете использовать '10.1201f' вместо этого, что говорит компилятору рассматривать значение как' float' вместо 'double' – MadProgrammer

ответ

11

Java принимает 10.1201 как double. Для того, чтобы передать значение float вы должны добавить f к нему так:

float value = methodReturnTest.getValue(10.1201f); 
+2

, иначе вы можете использовать как getValue ((float) 12.36565); – BRjava

2

Вы должны добавить f после ряда поплавка. Если вы этого не сделаете, Java не будет знать, должно ли это число рассматриваться как float или double.

float value = methodReturnTest.getValue(10.1201f); 
4

В Java Float Literals могут указать с помощью п в конце иначе она будет рассматривается как двойной буквальным.

ли так

float value = methodReturnTest.getValue(10.1201f); 
3

Float является одинарной точности 32-битная IEEE 754 с плавающей точкой и Двойник двойной точности 64-битная IEEE 754 с плавающей точкой. Когда вы используете значение с десятичными точками, и если вы не укажете его как 0,23f (в частности, float), java идентифицирует его как double.

Для десятичных значений двойной тип данных обычно является выбором по умолчанию, выбранным java. check this

Смежные вопросы