Fix calculator entry of numbers with negative exponents (bug#41347)

* lisp/calculator.el (calculator-string-to-number):
Remove obsolete string transformations preventing entry of 1e-3 etc.
Keep one transformation to allow entry of "1.e3".
Reported by Chris Zheng.
This commit is contained in:
Mattias Engdegård 2020-05-17 18:11:27 +02:00
parent 2216468786
commit b1fe27d77d

View file

@ -858,12 +858,10 @@ The result should not exceed the screen width."
"Convert the given STR to a number, according to the value of
`calculator-input-radix'."
(if calculator-input-radix
(string-to-number str (cadr (assq calculator-input-radix
'((bin 2) (oct 8) (hex 16)))))
(let* ((str (replace-regexp-in-string
"\\.\\([^0-9].*\\)?$" ".0\\1" str))
(str (replace-regexp-in-string
"[eE][+-]?\\([^0-9].*\\)?$" "e0\\1" str)))
(string-to-number str (cadr (assq calculator-input-radix
'((bin 2) (oct 8) (hex 16)))))
;; Allow entry of "1.e3".
(let ((str (replace-regexp-in-string (rx "." (any "eE")) "e" str)))
(float (string-to-number str)))))
(defun calculator-push-curnum ()