From c9447cebdf0d0e4f0afd4a1599857a9f86066b62 Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Tue, 26 Dec 2023 00:28:56 +0600 Subject: [PATCH] fixed bugs --- FusionCalculator | 2 +- SharpCalculator.Avalonia/MainWindow.axaml.cs | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/FusionCalculator b/FusionCalculator index 7dab069..43d3864 160000 --- a/FusionCalculator +++ b/FusionCalculator @@ -1 +1 @@ -Subproject commit 7dab069aa6c58ea4a5270e8983663076eb35dbf2 +Subproject commit 43d38645a527aff10f585a01f62313cbd840014e diff --git a/SharpCalculator.Avalonia/MainWindow.axaml.cs b/SharpCalculator.Avalonia/MainWindow.axaml.cs index f2452e2..ab0d0e5 100644 --- a/SharpCalculator.Avalonia/MainWindow.axaml.cs +++ b/SharpCalculator.Avalonia/MainWindow.axaml.cs @@ -83,13 +83,20 @@ public partial class MainWindow : Window { // expression is being processed by Calculator class that implemented in FusionCalculator Module double result = Calculator.Calculate(exprStr); + + // incomplete expression with no rezult if (double.IsNaN(result)) Output.Text = ""; - // scientific notation with 5-digit precision for big and small numbers - else if (result > 10e+15 || result < 10e-5) + else if (Math.Abs(result) is >= 10e-5 and <= 10e15) + { + // decimal number with 5-digit precision for regular numbers + Output.Text = result.ToString("0.#####", CultureInfo.InvariantCulture); + } + else + { + // scientific notation with 5-digit precision for big and small numbers Output.Text = result.ToString("0.#####E0", CultureInfo.InvariantCulture); - // decimal number with 5-digit precision for regular numbers - else Output.Text = result.ToString("0.#####", CultureInfo.InvariantCulture); + } } catch (Exception exception) {