Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 2.17 Преобразование строки типа "-897.075" в число -897.075

Страниц (3): [1] 2 3 »
 

1. Kibor - 17 Октября, 2013 - 13:42:22 - перейти к сообщению
formatsn служит для преобразования строк в которых записаны числа в натуральное число int или double.
Синтаксис:
formatsn("76765");
formatsn('7');
formatsn("-757.067");

int a=formatsn("76765");
messagebox (a+5);

Принимает string или char. Знаком дроби служит точка ( . ).
Возвращает int или double, который можно использовать в математических и других операциях.
В случае ошибки возвращает число -10011001
Ошибка возвращается если строка в параметре не может быть преобразована в число.
2. kunni - 14 Декабря, 2014 - 16:16:25 - перейти к сообщению
Здравствуйте!
Копирую в буфер обмена число из ячейки Экселя (выделяю ячейку - копировать) - кибор не может преобразовать это число из буфера из string в int
CODE:
string y;
readclipboard(y);
int x=formatsn(y);

Хотя messagebox(y); выводит то самое число, которое я копировал.

Если скопировать не ячейку, а, например, выделив это число в строке ввода (в Экселе) или из любого текстового документа - все работает, но это очень неудобно.

Как победить этот момент? Нужно именно число из ячейки Экселя использовать дальше в скрипте как число и применять к нему математические формулы.

Заранее спасибо.
3. Kibor - 14 Декабря, 2014 - 18:50:39 - перейти к сообщению
string y;
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?

целое или дробное число? знак дроби какой?
4. kunni - 16 Декабря, 2014 - 02:06:01 - перейти к сообщению
 Kibor пишет:
string y;
readclipboard(y);
int x=formatsn(y);
messagebox(x);
что показывает?

целое или дробное число? знак дроби какой?

Число целое. Показывает ошибку. Видимо, если копировать ячейку из Экселя, копируется что-то еще (я не программист, терминологией не владею).

При выполнении кода - ошибка
Скриншот (Отобразить)
5. Kibor - 16 Декабря, 2014 - 04:57:01 - перейти к сообщению
значит еще копируется что т.. пробел.. таб..
надо вставить с буфера куда т и посмотреть
6. kunni - 16 Декабря, 2014 - 09:19:11 - перейти к сообщению
 Kibor пишет:
значит еще копируется что т.. пробел.. таб..
надо вставить с буфера куда т и посмотреть

Вы знаете, вы оказались правы: вставляется еще и перенос строки (ЭНТЕР):
CODE:
======================

CODE:
=========51515151
=============

Как победить?
7. Kibor - 16 Декабря, 2014 - 11:39:30 - перейти к сообщению
перевести строку в массив char и убрать не нужный символ
8. Zireael - 12 Декабря, 2017 - 04:42:24 - перейти к сообщению
CODE:
string a="";
messagebox(formatsn(a)); // должно вернуть -10011001
9. Dantes3000 - 12 Декабря, 2017 - 05:17:47 - перейти к сообщению
string a=" ";
messagebox(formatsn(a)); // возвращает -10011001
10. Kibor - 12 Декабря, 2017 - 05:37:54 - перейти к сообщению
Zireael ,
Ну пустая строка это 0. string заканчивается нулем. Так и преобразует.

Powered by ExBB FM 1.0 Final