Конвертация из строки в число

Тема в разделе "Lotus - Программирование", создана пользователем Miolnir, 26 янв 2011.

  1. Miolnir

    Miolnir Well-Known Member

    Регистрация:
    6 май 2010
    Сообщения:
    50
    Симпатии:
    0
    Возник следующий....ступор. Вопшем есть функция, получающая на входе строку, в которой указаны некоторые числа через пробел. Задача функции сложить все числа в строке. сложного ничего особо нет, но на некоторых числах вываливается "Type Mismatch". а именно тупит при передаче следующего числа
    Код (LotusScript):
    CDbl(m_str) 'где m_str является вычлененным из строки числом "1227"
    думал что (малоли вдруг) вывалился за рамки допустимых значений конктретного типа...но ошибка вылетала даже при попытке сконвертировать в CInt, CLng и пр.
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Может проблема с разделителем (точка, запятая). Или какой-нибудь шутник вместо 1 (один) указал l (эль). В некоторых шрифтах они очень похожи.
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    не могут где-то пробелы затесаться? может, тримнуть строку перед пребразованием?

    Добавлено:
    можно проверить код через Asc
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    isnumeric сперва сделай
    а еще лучше дебагером глянь, что на самом деле в строке осталось
     
  5. Miolnir

    Miolnir Well-Known Member

    Регистрация:
    6 май 2010
    Сообщения:
    50
    Симпатии:
    0
    строка тримнута, по кодам там число.
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    IsNumeric
    Val ещё есть
    Ну ещё NotesInternetional.DecimalSeparator может пригодиться.
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Miolnir
    может переменная задекларированна 2 раза как глобальная и как локальная?

    я бы тоже зделал как ToxaRat
     
  8. Miolnir

    Miolnir Well-Known Member

    Регистрация:
    6 май 2010
    Сообщения:
    50
    Симпатии:
    0
    проблему решил, тот кто формировал строку, заносил числа не через пробелы, а через ввод (ентром) иногда добавляя в конце строки пробелы. дебаггер видел в переменной, например, не 12 и 27, а 1227, хотя по факту там было два разных числа, оттуда и вылезала ошибка с конвертацией походу.
     
Загрузка...

Поделиться этой страницей