Перейти к содержимому

Фотография

в чем причина ошибки "The argument is not a number"


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 gira13

gira13

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 25 декабря 2014 - 15:33

Данная ошибка выдается на строку 

var str = aqConvert.FloatToStr(aqConvert.StrToFloat(zal)+5000);

У меня стоит 7-ой TestComplete и ошибки нет
На другой машине стоит 10-ый TestComplete и возникает ошибка. Правда комп, на котором возникает ошибка, тормознутей. Но я не думаю, что  в данном случае это играет роль
Может в 10-ой версии  другая функция?

  • 0

#2 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 25 декабря 2014 - 18:15

Какое значение у zal в обоих случаях?
  • 0

#3 gira13

gira13

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 26 декабря 2014 - 07:27

Какое значение у zal в обоих случаях?

zal считывается из поля(как текст, тип string) но там всегда число при том целое, например 9999

тип aqConvert.StrToFloat(zal) number

Я уже разбила на 2 строки

var ss=aqConvert.StrToFloat(zal)+5000;
var str = aqConvert.FloatToStr(ss);

ругается на первую строку


  • 0

#4 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 07:55

Ну значит нот э намбер. Что выдает typeof zal?


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#5 gira13

gira13

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 26 декабря 2014 - 07:56

Ну значит нот э намбер. Что выдает typeof zal?

string


  • 0

#6 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 08:02

Так проверяли?

 

var zal='9999';

var ss=aqConvert.StrToFloat(zal)+5000;


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#7 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 08:09

Работает ли метод Utilities.StrToFloat?


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#8 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 26 декабря 2014 - 08:14

На другой машине ... возникает ошибка.

Ключевое слово - "на другой машине". Там системные настройки - локаль, формат чисел и т.п. - такие же, как на первой машине?

Проблема, скорее всего, в формате строки "zal" - например, пробел внутри. Для StrToFloat строка должна быть в таком формате:

A valid string must consist of an optional sign (+ or -), a string of digits with an optional decimal point, and an optional mantissa. The mantissa consists of 'E' or 'e' followed by an optional sign (+ or -) and a whole number. Leading and trailing blanks are ignored. The decimal point character is read from the local system settings.

Thousand separators and currency symbols are not allowed in the string.


  • 0

#9 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 08:19

Причем тут локаль и т.п. Автор проблемы явно написал, что в ячейке находится целое число 9999.

Если дробная часть присутствует, то это другой разговор.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#10 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 08:22

В дебажном режиме какое значение zal?


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#11 gira13

gira13

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 26 декабря 2014 - 08:24

Так проверяли?

 

var zal='9999';

var ss=aqConvert.StrToFloat(zal)+5000;

На моем компе все ок

А на компе, где ошибка

typeof(aqConvert.StrToFloat(zal)) возращает 

The argument is not a number

 

Получается 10-ый TestComplete не поддерживает правильно данную функцию или как?

 

 

В дебажном режиме какое значение zal?

9999,00


  • 0

#12 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 08:31

А ну все таки не 9999, а есть ','. Поставьте в региональных настройках не запятую, а точку.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#13 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 08:32

Либо используйте реплейс (',', '.')


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#14 gira13

gira13

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 26 декабря 2014 - 08:51

Либо используйте реплейс (',', '.')

Спасибо, помогло, правда я не реплейс взяла, а просто нашла точку или запятую и удалила их,т.е. оставила целое число,т.к. я знаю, что будет целое

Или может все-таки лучше заменить?


  • 0

#15 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 26 декабря 2014 - 09:31

На первом этапе, имхо, достаточно. В дальнейшем при работе с данными поймете, как универсальнее сделать функцию.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных