@ GRSousaJR уже упомянул некоторые несоответствия с gprintf()
и %t
и %T
в комментариях. Я быстро протестировал с gnuplot 5.2.8, несоответствия все еще там. Громоздкое решение дано здесь .
Например:
print gprint("%t",95)
дает 0.95
и print gprintf("%T",95)
дает 2
.
Итак, 95 = 0.95 x 10^2
не так, но ожидаемый результат будет 9.5 x 10^1
.
Но теперь, если вы будете использовать, например, %.3t
вместо %t
, вы получите неправильно результаты. Может быть, кто-то может объяснить это? *
### inconsistency in gprintf with %t and %T
reset session
array Numbers = [0.95, 9.5, 95, 995, 9995]
print "gprintf with %t"
do for [i=1:|Numbers|] {
print gprintf("% 8g",Numbers[i])." = ".gprintf("%t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.3t"
do for [i=1:|Numbers|] {
print gprintf("% 8g",Numbers[i])." = ".gprintf("%.3t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.0t"
do for [i=1:|Numbers|] {
print gprintf("% 8g",Numbers[i])." = ".gprintf("%.0t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
### end of code
Результат: (с gnuplot 5.2.8)
gprintf with %t
0.95 = 9.500000 x 10^-1
9.5 = 9.500000 x 10^0
95 = 0.950000 x 10^2 # somehow correct but not the expected result
995 = 0.995000 x 10^3 # somehow correct but not the expected result
9995 = 0.999500 x 10^4 # somehow correct but not the expected result
gprintf with %.3t
0.95 = 9.500 x 10^-1
9.5 = 9.500 x 10^0
95 = 9.500 x 10^2 # simply wrong
995 = 9.950 x 10^3 # simply wrong
9995 = 9.995 x 10^4 # simply wrong
gprintf with %.0t
0.95 = 9 x 10^-1
9.5 = 9 x 10^0
95 = 1 x 10^2 # somehow ok, rounded. But why not 9 x 10^1, similar to 9.5?
995 = 1 x 10^3 # ok, rounded
9995 = 1 x 10^4 # ok, rounded