- printf, V, 19:16 , 24-Авг-07 (1)
>$perl -e 'printf("%07d",267.84*100)' >0026783 > >Господа, куда ушла единичка?? perl -e 'printf("%07s",267.84*100)' 0026784
- printf, jd, 02:12 , 28-Авг-07 (2)
>$perl -e 'printf("%07d",267.84*100)' >0026783 > >Господа, куда ушла единичка?? 267.84 не переводится точно в двоичное представление, соответственно при вычислениях используется значение около 267.84 (немного меньше). Это можно наблюдать, если выполнить: perl -e 'printf("%.20f", 267.84)' При выводе целого результата, дробная часть (которая чуть меньше еденицы) отбрасывается. Обычно в таких случаях используют округление. В Перле не силён и почему работает предложенный выше вариант (с "%07s") - не знаю. Очевидно, специфика приведения типов или типа того.
- printf, cat, 14:48 , 28-Авг-07 (3)
>267.84 не переводится точно в двоичное представление, соответственно при вычислениях используется значение >около 267.84 (немного меньше). Это можно наблюдать, если выполнить: > >perl -e 'printf("%.20f", 267.84)' > >При выводе целого результата, дробная часть (которая чуть меньше еденицы) отбрасывается. ВО!! спасибо!
|