| Цитата(Golovastik @ 20.12.2010, 20:10) | 2)Как сделать проверку, что введённое если является числом типа даубле, выдать сообщение об этом? Если другого типа, также выдать сообщение об этом. |
Одно и то же число может принадлежать нескольким типам. В Java для примитивных классов есть обертки, которые имеют соответствующие методы парсинга. Позапускайте код, попробуйте разобраться.
| Код | public static void main(String[] args) throws IOException { System.out.print("Введите число: "); BufferedReader br = new BufferedReader( new InputStreamReader(System.in, "CP1251")); // кодировка для Win String str = br.readLine(); System.out.println("Вы ввели: " + str); try { // парсим в порядке убывания диапазонов значений double d = Double.parseDouble(str); // отбрасываем значения бесконечностей if (!Double.isInfinite(d)) System.out.print("Это число. Его возможный тип: double"); float f = Float.parseFloat(str); if (!Float.isInfinite(f)) System.out.print(", float");
Long.parseLong(str); System.out.print(", long"); Integer.parseInt(str); System.out.print(", int"); Short.parseShort(str); System.out.print(", short"); Byte.parseByte(str); System.out.print(", byte"); } catch (NumberFormatException e) {} System.out.println(); }
|
Кстати, Double.parseDouble() и Float.parseFloat() считают "своими" также и целочисленные значения (а вылетающие за их диапазон значения считают "+" или "-" бесконечностью). Если все же нужно четко различать ввод целочисленных значений и чисел с плавающей точкой (плюс к тому можно реализовать проверку вхождения числа в диапазоны значений типов), то это сделать несложно, и вы вполне справитесь с этим самостоятельно  |