@@ -96,10 +96,10 @@ function stylesymbolarray(syms, defaults, guesses, symstyles=Dict{Int,Symbol}())
96
96
style = get (symstyles, i, :default )
97
97
ret = ret * styled " {$style:$(string(sym))}"
98
98
if ! isnothing (default)
99
- _str = str_significant (default; sigdigits= 2 )
99
+ _str = str_significant (default; sigdigits= 5 )
100
100
ret = ret * styled " {NetworkDynamics_defaultval:=$(_str)}"
101
101
elseif ! isnothing (guess)
102
- _str = str_significant (guess; sigdigits= 2 )
102
+ _str = str_significant (guess; sigdigits= 5 )
103
103
ret = ret * styled " {NetworkDynamics_guessval:≈$(_str)}"
104
104
end
105
105
if i < length (syms)
@@ -306,14 +306,12 @@ function maybe_plural(num, word, substitution=s"\1s")
306
306
end
307
307
308
308
function str_significant (x; sigdigits)
309
- (x == 0 ) && (return " 0" )
310
- x = round (x; sigdigits)
311
- n = length (@sprintf (" %d" , abs (x))) # length of the integer part
312
- if (x ≤ - 1 || x ≥ 1 )
313
- decimals = max (sigdigits - n, 0 ) # 'sig - n' decimals needed
314
- else
315
- Nzeros = ceil (Int, - log10 (abs (x))) - 1 # No. zeros after decimal point before first number
316
- decimals = sigdigits + Nzeros
309
+ # isinteger(x) && return string(Int(x))
310
+ formatted = @sprintf (" %.*g" , sigdigits, x)
311
+ if occursin (r" e\+ 0*" , formatted)
312
+ formatted = replace (formatted, r" e\+ 0*" => " e" )
313
+ elseif occursin (r" e\- 0+" , formatted)
314
+ formatted = replace (formatted, r" e\- 0+" => " e-" )
317
315
end
318
- return @sprintf ( " %.*f " , decimals, x)
316
+ formatted
319
317
end
0 commit comments