![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Гость_Сергей |
|
|||
|
Unregistered |
вот простенький скрипт
#!/usr/bin/perl print "Content-type: text/html; charset=koi8-r\n\n"; for ($i=0.6; $i<=1.6; $i+=0.001) { print "$i<br>\n"; } ничего вроде сложного, должен столбец выводиться 0.6 0.601 0.602 ... 1.6 но начиная гдето со значения 1.4 выдаёт 1.3999999999 1.4009999999 и т. д. может это у меня только так? и почему это так получается? |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Kiber_rat |
|
||||
![]() MACMANIAC ![]() ![]() Профиль Группа: Участник Сообщений: 276 Регистрация: 18.4.2002 Где: Ashdod, Israel Репутация: 1 Всего: 9 |
Забавно, я немного переделал твой код и у меня получился правильный вывод, а твой действительно странно себя ведет... В любом случае можно в таких случаях использовать printf или sprinf
Вот мой код:
-------------------- Best regards! @..@_____Ku6ep =*=______\______KPbIC
|
||||
|
|||||
| Гость_Сергей |
|
|||
|
Unregistered |
а почему же так получается?
может кто из знающих подскажет? |
|||
|
||||
| Kiber_rat |
|
||||
![]() MACMANIAC ![]() ![]() Профиль Группа: Участник Сообщений: 276 Регистрация: 18.4.2002 Где: Ashdod, Israel Репутация: 1 Всего: 9 |
Вот порасспросил знакомого "гуру"
-------------------- Best regards! @..@_____Ku6ep =*=______\______KPbIC
|
||||
|
|||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Причем это проблема не только в Perl, но и в других языках.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Ivan Kolesnikov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 9.3.2005 Где: г. Новокузнецк Репутация: нет Всего: 6 |
В десятичной системе
1.2 = 1*10^1 + 2*10^(-1) Можно заметить: 0.2 = 1/5 или приблеженно равно = 1/8 + 1/16 + 1/128 = 25/128 = 0.1953125 Точного представления все равно не получится, потому что нет такого числа что (2^x) % 5 = 0 И получаем в двоичной системе 1*2^0+0*2^(-1)+0*2^(-2)+1*2^(-3)+1*2^(-4)+0*2^(-5)+0*2^(-6)+1*2^(-7)+... = 1.0011001... Интересно, например в 3-ной системе 1/3 переходит в 0.1, причем точно --------------------
|
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |