Почему Java бросает точки чисел, чтобы удвоить? Когда я бросаю его, он работает. Но, по-моему, это не красиво.Автоматическое приведение к двойному параметру
Мои методы могут быть изменены для двойного подписи. Но когда я импортирую что-то, я не нахожу решения.
public class Demo {
public static void main(String[] args) {
run(0.1);
run(1*0.1);
run(1);
importedClass.setPosition(0.1, 3.5);
//setPosition(float, float) not applicable for the arguments (double, double)
run((float) 0.1);
run((float) 1*0.1);
run(1);
importedClass.setPosition((float) 0.1, (float) 3.5);
}
public static void run(float x) {
//do something
}
}
Броски Нерешенные проблемы компиляции:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method run(float) in the type Demo is not applicable for the arguments (double)
The method run(float) in the type Demo is not applicable for the arguments (double)
at test.Demo.main(Demo.java:6)
Потому что '0.1' является двойным литералом; целое число, умноженное на double, является двойным и т. д. Если вы хотите иметь плавающий литерал, используйте суффикс 'f'. –