implement ev_precision into ev0 procedure (return result rounded to ev_precision digits or return 0 if expression can not be evaluated due to syntax errors or unresolved parameters)

This commit is contained in:
stefan schippers 2026-03-24 09:12:50 +01:00
parent 8c47d3fc2c
commit 69337b2652
1 changed files with 4 additions and 2 deletions

View File

@ -668,7 +668,7 @@ proc to_eng {args} {
}
proc = {args} {
set r [ev7 $args]
set r [ev $args]
puts $r
}
@ -699,9 +699,11 @@ proc ev {args} {
## evaluate expression. if expression has errors or does not evaluate return 0
proc ev0 {args} {
global ev_precision
if {[info exists ev_precision]} {set pr $ev_precision} else {set pr 4}
set i [join $args]
if {![catch {uplevel #0 expr $i} res]} {
return [format %.4g $res]
return [format %.${pr}g $res]
} else {
# puts stderr "proc ev0: $res"
return 0