Changeset 763


Ignore:
Timestamp:
May 26, 2003, 7:34:42 PM (18 years ago)
Author:
luba
Message:
  • creating number from terms of type Word is corrected
File:
1 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/runtime/rf_short_int.cc

    r755 r763  
    6868
    6969      n = n * k + ((ShortInt*)p)->to_int();
     70     
    7071    }
    7172    if (p->get_type() == type_char) {
     
    7475    }
    7576    if (p->get_type() == type_word) {
    76       size_t len = ((Word*)p)->get_len();
    77       size_t n_word = 0;
    78       int k_word = 1;
    79       int deg = 0;
    80       if (_flag ) deg = len - 2;
    81       else deg = len - 1;
    82      
    83       for (int i = 0; i < deg; i++) 
    84         k_word *= 10;           
     77      float n_word = 0;
     78      float k_word = 0.1;
    8579
    8680      Word::NumIterator i = *((Word*)p);
    8781
    88       for (; i.in_bounds(); i++){       
    89         n_word += (*i) * k_word;
     82      while (i.in_bounds()) {
     83        k_word *= 10;
     84        i++;
     85      }
     86
     87      Word::NumIterator j = *((Word*)p);
     88
     89      for (; j.in_bounds(); j++){       
     90        n_word += (*j) * k_word;
    9091        k_word /= 10;
    9192      }
    92       n += n_word;                 
     93      n += size_t (n_word);                 
    9394    }
    9495  }
Note: See TracChangeset for help on using the changeset viewer.