fix(calc-scientific): sqrt/square mit lastResult, Negate-Regex

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 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 22:03:02 +02:00
parent 2f23c13de1
commit 3dd9723271
+11 -1
View File
@@ -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);