Имя: Пароль:
1C
1С v8
Конвертация строки в число
,
0 Sasha_uu
 
10.10.13
09:16
Есть таблица значений, в ней есть колонки с типом значение число. Написал обработку которая считывает данные из текстового файла, в итоге Значение= число(Строка) при упаковке в строку таблицы значения получатся 999999,99999. В отладчике смотрел Число(Строка) отражает нормальное число. Как это победить?
1 Эмбеддер
 
10.10.13
09:18
разрядность увеличить надо
2 Sasha_uu
 
10.10.13
09:19
Разрядность у колонки?
3 Sasha_uu
 
10.10.13
09:21
(1) не помогло
4 Aleksey T
 
10.10.13
09:23
Что за текстовый файл? Может из-за непечатыемых символов? например неразрывный пробел(в экселе ставится автомат между разрядами) и надо сначала заменить Символы.ПС на "". Или я неправильно понял проблемы
5 Godofsin
 
10.10.13
09:23
Попробуй округлять
6 Balabass
 
10.10.13
09:23
А куда выводится 99999,999999? в табличную часть или в макет?
7 Бледно Золотистый
 
10.10.13
09:23
(3) рассказывай что делал
8 Sasha_uu
 
10.10.13
09:25
(4) простой текстовый файл, там число написано в виде 156,256
9 Sasha_uu
 
10.10.13
09:25
все получилось, увеличил разрядность числа и все корректно загрузилось
10 dsdred
 
10.10.13
09:26
Нужен пример того, что ты пытаешься "запихать" и Тип данных колонки в которую ты хочешь запихать.
11 dsdred
 
10.10.13
09:31
ЯчейкаЧисло=СтрЗаменить(ЧислоСТрока, ",",".")*1;
12 Эмбеддер
 
10.10.13
09:39
(12) 1С не умеет умножать строку на число
13 IVT_2009
 
10.10.13
09:40
не плохо еще помогало число(формат(стрЧисло,"ДФ="))
14 dsdred
 
10.10.13
09:43
(12) что же оно у меня умеет, а у Вас нет?
Попробуйте и будете удивлены.
15 Эмбеддер
 
10.10.13
09:52
(14)

"1"+1 = "11"
"1"*1 = 1
да, чудеса))))
16 samozvanec
 
10.10.13
10:00
(14) никто не умеет, есть неявные приведения
17 Sabbath
 
10.10.13
10:03
(16) Python умеет, "2" * 3  будет "222"
18 User_Agronom
 
10.10.13
10:07
(15) неявное преобразование типов.
Вместо Строка(Переменная) можно написать ""+Переменная.
Теоретически можно проверить, что быстрее отрабатывает.
19 Эмбеддер
 
10.10.13
10:08
(17) вот это логично как раз
20 1Сергей
 
10.10.13
10:09
(19) по этой логике чему будет равно  "2" ^ 3  ?
21 Rie
 
10.10.13
10:10
(20) А это уже - не "эта", а совсем другая логика :-)
22 Эмбеддер
 
10.10.13
10:11
(20) по логике ошибка должна быть когда строку умножают на число
23 1Сергей
 
10.10.13
10:12
(22) а в (19) ты сказал обратное
24 Sabbath
 
10.10.13
10:12
(20) а тут ты умножаешь три раза строку на строку "2" * "2" * "2", это как раз совсем другое, чем строку на число.
25 Эмбеддер
 
10.10.13
10:13
(23) строку умножили на 3, стало 3 таких строки. логично
26 Sabbath
 
10.10.13
10:14
В Python имеется ввиду логика такая 2 * 3 - это число 2 три раза, а "2" * 3 - строка "2" 3 раза, все логично)
27 Sabbath
 
10.10.13
10:15
+(26) ну или проще говоря это как операция сложения, 2 + 2 + 2, или "2" + "2" + "2", т.е. для строки конкатенация
28 Sabbath
 
10.10.13
10:16
Иногда полезно, наприме, вывести какие-то лидирущие нули в зависимости от длины строки и т.п.
29 dsdred
 
10.10.13
10:34
(15) И что вас не устраивает?
Задача как раз была преобразовать строку в число
"1"*1 = 1
и как видно из этого, 1С умеет умножать строку на число
30 Эмбеддер
 
10.10.13
12:03
(29) Вы сказали проверить я проверил. С чего Вы взяли что в (15) меня что-то не устраивает? Но я бы не называл это хорошим стилем программирования
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший