Portál AbcLinuxu, 11. května 2025 04:37
LC_ALL=C printf "%.0f\n" 1995.5 1996 LC_ALL=C printf "%.0f\n" 332.5 332První řádek zaokrouhluje nahoru, jak má být a druhý dolů, proč?
Řešení dotazu:
var=332.5 echo $var | awk '{print int($1+0.5)}' var=1995.5 echo $var | awk '{print int($1+0.5)}'Děkuji za nasměrování
Kromě „round half to even“ bych ještě upozornil na možnost [s největší pravděpodobností to není tento případ], že v numerické reprezentaci jedno číslo skončí jako něco.4999999999 a druhé číslo jako něcojiného.5000000001. Jasně, že u malých čísel se to asi nestane, ale když číslo překročí rozsah mantisy, začnou se dít zajímavé věci.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.