/
Serge8114
/
Lab1
Обзор
Документация
Войти
/
Serge8114
/
Lab1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ConverterModel.java
62 строки
3 KB
Serge8114
upload files
27 фев 2026, 03:27
Верифицирован
27 фев 2026, 03:27
e722d30
Код
Авторство
О чём код?
package com.example.demo2; public class ConverterModel { public double convert(String valueStr, String from, String to) { double decimalValue; switch (from) { case "Обыкновенная дробь": String[] parts = valueStr.split("/"); if (parts.length != 2) { throw new IllegalArgumentException("Введите дробь в формате числитель/знаменатель (например: 1/2)"); } try { double numerator = Double.parseDouble(parts[0].trim()); double denominator = Double.parseDouble(parts[1].trim()); if (denominator == 0) { throw new IllegalArgumentException("Знаменатель не может быть равен 0"); } decimalValue = numerator / denominator; } catch (NumberFormatException e) { throw new IllegalArgumentException("Введите числа в формате числитель/знаменатель"); } break; case "Десятичная дробь": decimalValue = Double.parseDouble(valueStr); break; case "Проценты": decimalValue = Double.parseDouble(valueStr) / 100.0; break; default: throw new IllegalArgumentException("Неизвестный формат: " + from); } switch (to) { case "Обыкновенная дробь": return decimalValue; case "Десятичная дробь": return decimalValue; case "Проценты": return decimalValue * 100; default: throw new IllegalArgumentException("Неизвестный формат: " + to); } } public static void main(String[] args) { ConverterModel model = new ConverterModel(); double result1 = model.convert("1/2", "Обыкновенная дробь", "Десятичная дробь"); System.out.println("1/2 = " + result1 + " (десятичная)"); double result2 = model.convert("3/4", "Обыкновенная дробь", "Проценты"); System.out.println("3/4 = " + result2 + "%"); double result3 = model.convert("50", "Проценты", "Десятичная дробь"); System.out.println("50% = " + result3); } }