Имя: Пароль:
1C
 
(ПривестиЗначение) Ошибка: Неправильная константа типа Число
0 Grumax
 
25.06.10
11:26
// Для перевода строки в чилсло, необходимо задать описание типов
КЧ            = Новый КвалификаторыЧисла(15, 6) ;
КС            = Новый КвалификаторыСтроки(20) ;
ОписаниеТипаЧисло    = Новый ОписаниеТипов("Число", КЧ) ;
ОписаниеТипаСтрока    = Новый ОписаниеТипов("Строка", КС) ;

стрСтрока    = "12357,85" ;
чисЧисло    = ОписаниеТипаЧисло.ПривестиЗначение( стрСтрока ) ;
стрСтрока    = стрЗаменить(ОписаниеТипаСтрока.ПривестиЗначение( чисЧисло ), " ", "") ;
Выполнить("чисЦифра = " + стрСтрока)
чисЧисло    = чисЦифра + 10

//{(1,12)}: Неправильная константа типа Число
//чисЦифра = <<?>>12 357,85
//{(1,18)}: Неопознанный оператор
//чисЦифра = 12 357<<?>>,85

Что делаю не так?
1 Defender aka LINN
 
25.06.10
11:31
Аще жесть...
Про функцию "Число()" что-нибудь слышал?
2 Buster007
 
25.06.10
11:36
(0) с Индии?
3 Grumax
 
25.06.10
11:46
(1) Только начинаю писать, так что всех функций ещё не знаю, спасибо за подсказку... Не помогло!
// Для перевода строки в чилсло, необходимо задать описание типов
Перем чисЦифра ;
КЧ            = Новый КвалификаторыЧисла(15, 6) ;
КС            = Новый КвалификаторыСтроки(20) ;
ОписаниеТипаЧисло    = Новый ОписаниеТипов("Число", КЧ) ;
ОписаниеТипаСтрока    = Новый ОписаниеТипов("Строка", КС) ;

стрСтрока    = "12357,85" ;
//чисЧисло    = ОписаниеТипаЧисло.ПривестиЗначение( стрСтрока ) ;
//стрСтрока    = стрЗаменить(ОписаниеТипаСтрока.ПривестиЗначение( чисЧисло ), " ", "") ;
чисЧисло    = Число( стрСтрока ) ;
стрСтрока    = Строка( чисЧисло ) ;
Выполнить("чисЦифра = " + стрСтрока + " + 10") ;
чисЧисло    = чисЦифра + 10 ;
//{(1,12)}: Неправильная константа типа Число
//чисЦифра = <<?>>12 357,85 + 10
//{(1,18)}: Неопознанный оператор
//чисЦифра = 12 357<<?>>,85 + 10
4 Defender aka LINN
 
25.06.10
11:48
(3) Ты в коде числовую константу пишешь как "12357,85", да?
5 Grumax
 
25.06.10
11:49
(2) Хоть код и выглядит странным, но так должно быть, я его написал для упрощения восприятия, последовательность именно такая строку в число, потом число в строку и подстановка в строковое выражение, получить результат!
6 Grumax
 
25.06.10
11:50
(4) Я хочу чтобы работало ВЫПОЛНИТЬ() или её аналог, но принцип тот же
ЧисЦифра = 12357,85 + 10 = 12367,85
7 Vitello
 
25.06.10
11:50
(0)Давай, рассказывай что делать хочешь. С самого начала.
8 Grumax
 
25.06.10
11:51
(5) Написал
9 Defender aka LINN
 
25.06.10
11:51
(6) Я у тебя не спрашиваю, что ты хочешь. Я спросил конкретную вещь.
10 Vitello
 
25.06.10
11:51
перемСтрока = "1234567";
перемЧисло = Число(перемСтрока);
перемСтрокаПреобр = Строка(перемЧисло);
11 Vitello
 
25.06.10
11:53
Тока перед преобразованием строки в число надо либо проверять что в строке только цифры, либо всю конструкцию засовывать в попытку, и обрабатывать исключение. Поскольку а = Число("124354апапарн") выдаст ошибкама.
12 Grumax
 
25.06.10
12:14
(4) Да числовую константу хочу писать как "12357,85", но в отладке он мне рисует "12 357,85", думаю в этом загвоздка, но ф.СтрЗаменить() результатов не дала..
13 Grumax
 
25.06.10
12:15
(10) у меня тожн самое, не вижу решения, ошибка в ф.Выполнить(), что нужно сделать, чтобы она работала? ))
14 zbv
 
25.06.10
12:19
в СтрЗаменить() - заменять нужно не " " (пробел), а неразрывный пробел.
а вообще для этих целей используй Формат.
15 zbv
 
25.06.10
12:20
+ (14) для преобразования числа в строку.
16 73
 
25.06.10
12:31
17 Grumax
 
25.06.10
13:21
То: (14) и (16) Спасибо!

Сделать разделитель целой и дробной части "ЧРД=." и убрать неразрывные пробелы "ЧГ=0":
стрСтрока    = Формат(чисЧисло, "ЧЦ=15; ЧДЦ=6; ЧРД=.; ЧГ=0");
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший