The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"printf"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"printf"  
Сообщение от cat (??) on 24-Авг-07, 14:23 
$perl -e 'printf("%07d",267.84*100)'
0026783

Господа, куда ушла единичка??

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • printf, V, 19:16 , 24-Авг-07, (1)  
  • printf, jd, 02:12 , 28-Авг-07, (2)  
    • printf, cat, 14:48 , 28-Авг-07, (3)  

Сообщения по теме [Сортировка по времени, UBB]


1. "printf"  
Сообщение от V (ok) on 24-Авг-07, 19:16 
>$perl -e 'printf("%07d",267.84*100)'
>0026783
>
>Господа, куда ушла единичка??

perl -e 'printf("%07s",267.84*100)'
0026784

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "printf"  
Сообщение от jd (??) on 28-Авг-07, 02:12 
>$perl -e 'printf("%07d",267.84*100)'
>0026783
>
>Господа, куда ушла единичка??

267.84 не переводится точно в двоичное представление, соответственно при вычислениях используется значение около 267.84 (немного меньше). Это можно наблюдать, если выполнить:

perl -e 'printf("%.20f", 267.84)'

При выводе целого результата, дробная часть (которая чуть меньше еденицы) отбрасывается.

Обычно в таких случаях используют округление. В Перле не силён и почему работает предложенный выше вариант (с "%07s") - не знаю. Очевидно, специфика приведения типов или типа того.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "printf"  
Сообщение от cat (??) on 28-Авг-07, 14:48 
>267.84 не переводится точно в двоичное представление, соответственно при вычислениях используется значение
>около 267.84 (немного меньше). Это можно наблюдать, если выполнить:
>
>perl -e 'printf("%.20f", 267.84)'
>
>При выводе целого результата, дробная часть (которая чуть меньше еденицы) отбрасывается.

ВО!! спасибо!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру