Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Странное поведение компилятора 
:(
    Опции темы
nankko
Дата 19.11.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 8.2.2007

Репутация: нет
Всего: нет



Доброе время суток. 

На перле никогда не кодил, но увлекался достаточно. Друг попросил помощи с простеньким примером. 
Код

#!/usr/bin/perl -w
use strict;

my $i = 250.9;
my $ko = 0;
my $sum=0;
my $price=0;

while ($i >= 1.1) {print "BEFORE sum = $sum, price = $price, ko = $ko i = $i\n";
   $sum=$sum+$i;
   $price=$price+7;
   $i=$i-0.1;
   $ko++;
  print "AFTER sum = $sum, price = $price, ko = $ko, i = $i\n\n";
}



  print "summa stavok = $sum  \n";
  print "Kompaniya polu4ila = $price \n";
  print "kol-vo stavok = $ko  \n";


вот, на выходе вижу такую штуку.

на 38 итерации
BEFORE sum = 9216.7, price = 259, ko = 37 i = 247.2
AFTER sum = 9463.90000000001, price = 266, ko = 38, i = 247.1

BEFORE sum = 9463.90000000001, price = 266, ko = 38 i = 247.1
AFTER sum = 9711.00000000001, price = 273, ko = 39, i = 247

BEFORE sum = 9711.00000000001, price = 273, ko = 39 i = 247
AFTER sum = 9958.00000000001, price = 280, ko = 40, i = 246.9

BEFORE sum = 9958.00000000001, price = 280, ko = 40 i = 246.9
AFTER sum = 10204.9, price = 287, ko = 41, i = 246.8

такую с 86
BEFORE sum = 21211.9, price = 602, ko = 86 i = 242.3
AFTER sum = 21454.2, price = 609, ko = 87, i = 242.200000000001

BEFORE sum = 21454.2, price = 609, ko = 87 i = 242.200000000001
AFTER sum = 21696.4, price = 616, ko = 88, i = 242.100000000001

BEFORE sum = 21696.4, price = 616, ko = 88 i = 242.100000000001
AFTER sum = 21938.5, price = 623, ko = 89, i = 242.000000000001 

и такую с 115
BEFORE sum = 27718.9, price = 791, ko = 113 i = 239.600000000001
AFTER sum = 27958.5000000001, price = 798, ko = 114, i = 239.500000000001

BEFORE sum = 27958.5000000001, price = 798, ko = 114 i = 239.500000000001
AFTER sum = 28198.0000000001, price = 805, ko = 115, i = 239.400000000001

BEFORE sum = 28198.0000000001, price = 805, ko = 115 i = 239.400000000001
AFTER sum = 28437.4000000001, price = 812, ko = 116, i = 239.300000000001


объясните плиз, с чем связанно. Заранее спасибо.

Это сообщение отредактировал(а) nankko - 19.11.2009, 17:52
PM MAIL   Вверх
sir_nuf_nuf
Дата 19.11.2009, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Напишите русскими словами: что вас конкретно смущает.
На форуме не все любители анализироавть вывод программ, что бы понять что там не так.

Судя по тому, что вы используете операции с плавающей точкой, вам стоит прочитать это:
Числа с плавающей точкой и действия с ними


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.