From 3dd9723271f8b9d06593ecfd2bcbc5744b79682e Mon Sep 17 00:00:00 2001 From: JonKazama-Hellion Date: Thu, 16 Apr 2026 22:03:02 +0200 Subject: [PATCH] fix(calc-scientific): sqrt/square mit lastResult, Negate-Regex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sqrt und x² transferieren _lastResult in _currentExpr wenn Expression leer. handleNegate Regex akzeptiert auch dezimal-first Zahlen (.5). Co-Authored-By: Claude Opus 4.6 --- src/js/calc-scientific.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/js/calc-scientific.js b/src/js/calc-scientific.js index ba3824b..8092306 100644 --- a/src/js/calc-scientific.js +++ b/src/js/calc-scientific.js @@ -69,10 +69,20 @@ function handleSciKey(key) { switch (key) { case 'sqrt': + if (!Calculator._currentExpr && Calculator._lastResult) { + Calculator._currentExpr = 'sqrt(' + Calculator._lastResult + ')'; + Calculator._lastResult = ''; + Calculator._updateDisplay(); + break; + } Calculator._currentExpr += 'sqrt('; Calculator._updateDisplay(); break; case 'square': + if (!Calculator._currentExpr && Calculator._lastResult) { + Calculator._currentExpr = Calculator._lastResult; + Calculator._lastResult = ''; + } Calculator._currentExpr += '^2'; Calculator._updateDisplay(); break; @@ -104,7 +114,7 @@ } return; } - const match = expr.match(/(-?\d+\.?\d*)$/); + const match = expr.match(/(-?\d*\.?\d+)$/); if (match) { const num = parseFloat(match[1]); const negated = String(-num);