printf
Sistemimde iki farklı uygulamayı test ediyorum : printf (GNU coreutils) 8.26
ve birlikte verilen sürüm zsh 5.3.1
. Yarım sayıların nasıl yuvarlandığını test ediyorum, yani 1.5, 2.5, 3.5,… 9.5 için.
$ for i in {1..9}; do /usr/bin/printf '%.0f\n' "${i}.5"; done
2
2
4
4
6
6
8
8
10
$ for i in {1..9}; do printf '%.0f\n' "${i}.5"; done
2
2
4
4
6
6
8
8
10
Burada, her ikisi de açıkça yarıya eşittir . Ancak, ilk ondalık basamağa yuvarlamayı test ettiğimde işler kafa karıştırıyor. Yani, 1.15, 1.25, 1.35,… 1.95 için test yapıyorum.
$ for i in {1..9}; do /usr/bin/printf '%.1f\n' "1.${i}5"; done
1.1
1.2
1.4
1.5
1.5
1.6
1.8
1.9
2.0
$ for i in {1..9}; do printf '%.1f\n' "1.${i}5"; done
1.1
1.2
1.4
1.4
1.6
1.6
1.8
1.9
1.9
Her iki uygulama da farklı şekilde yapıyor ve ben de net bir örüntü göremiyorum. Bu iki printf
yarı yarıya ilk ondalık basamağa nasıl dönüşür?