Java: преобразование целых и двойных чисел в числа с плавающей точкой? - PullRequest
2 голосов
/ 08 декабря 2010

Работая над моим заданием для Java, я создал класс с именем Triangle. Это имеет 3 переменные, side1, side2 и side3. Мой метод конструктора принимает 3 значения с плавающей точкой и присваивает их каждой переменной по очереди.

Моя проблема заключается в том, что, если пользователь вводит (10,11.1,12.2), они принимаются как (int, double, double), а не как то, что мне нужно (значение присваивания говорит, что 3 стороны должны быть значениями с плавающей точкой). 1003 *

Так, как я могу преобразовать каждый вход в число с плавающей запятой независимо от того, является ли он целым или двойным при вводе?

Спасибо

Jack.

Ответы [ 4 ]

3 голосов
/ 08 декабря 2010

Обычно вы читаете данные в виде соответствующего типа - например, Scanner.nextFloat .Это будет читать «10» (или «11,1») как число с плавающей точкой.Для компилятора единственное, что имеет значение, это сигнатуры типов.

2 голосов
/ 08 декабря 2010

Сделайте вашу переменную / тип параметров Number. Число может быть легко преобразовано в любой другой тип числового примитива.

Number n1 = (int)1;
Number n2 = (double)123.456;

Float f1 = n1.floatValue();
Float f2 = n2.floatValue();
1 голос
/ 15 апреля 2011

Если вы принимаете пользовательский ввод, вы почти наверняка будете иметь дело со строками на уровне пользователя. Если это так, то вы можете использовать Float.valueOf(String), чтобы получить плавающее представление строки.

Для такого рода вещей вы найдете статический метод valueOf(String) для большинства, если не для всех, числовых типов в Java.

1 голос
/ 08 декабря 2010

Я предполагаю, что вы используете литералы, что вызывает проблему?Вставив букву "F" после них, они будут плавать.В противном случае это полностью зависит от вашего пользовательского интерфейса и от того, как вы получаете значения.

...