From 014890448011c17bf4e4c4ab82c24b76c9d2caf4 Mon Sep 17 00:00:00 2001 From: Punk-Bird Date: Tue, 16 Sep 2025 01:33:02 +0500 Subject: [PATCH] =?UTF-8?q?task10=20=D0=9C=D0=B5=D1=85=D0=BE=D0=BD=D1=86?= =?UTF-8?q?=D0=B5=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task10/src/com/example/task10/Task10.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/task10/src/com/example/task10/Task10.java b/task10/src/com/example/task10/Task10.java index ad8eedab6..f83e6fc74 100644 --- a/task10/src/com/example/task10/Task10.java +++ b/task10/src/com/example/task10/Task10.java @@ -7,9 +7,19 @@ public static boolean compare(float a, float b, int precision) { // TODO корректно сравнивать два значения типа float с заданной пользователем точностью (параметр - количество знаков после запятой). // Функция должна корректно обрабатывать ситуацию со сравнением значений бесконечности. // Функция должна считать значения «не число» NaN (например 0.0/0.0) равными между собой. - - return a == b; + if (Float.isNaN(a) && Float.isNaN(b)) + return true; + + if (Float.isInfinite(a) || Float.isInfinite(b)) + return a == b; + + if (precision != 0) { + float tolerance = (float) Math.pow(10, -precision); + return Math.abs(a - b) <= tolerance; + } + + return a == b; } public static void main(String[] args) {