Вход | Регистрация
 

Отделение числа от символа управляемые формы

Отделение числа от символа управляемые формы
Я
   JuixyJes
 
06.06.19 - 17:34
Добрый вечер, форумчане! Помогите пожалуйста, нужна функция для управляемых форм для отделения числа от знака %
 
 
   MakaMaka
 
1 - 06.06.19 - 17:35
что значит отделения числа? вам надо убрать символ из строки или что?
   shuhard
 
2 - 06.06.19 - 17:38
(0 уже пятница ?
   Кодер
 
3 - 06.06.19 - 17:39
Как у вас погода? Звали на большие деньги, холодного моря испугался.
Что пробовала сама сделать?
   Фрэнки
 
4 - 06.06.19 - 17:39
как только заканчивается четверг, так уже начиналась пятница
   Вафель
 
5 - 06.06.19 - 17:39
большие - это 300к?
   Фрэнки
 
6 - 06.06.19 - 17:42
(0) если по существу вопроса:

дай пример данных из которых тебе что-то там отделить нужно ( вероятно, что это какая-то строка символов, в которой есть % ? )
   JuixyJes
 
7 - 06.06.19 - 17:45
(6) Допустим "10%" из них мне нужно только число 10 , чтобы совершать арифметические действия с ним.

&НаКлиентеНаСервереБезКонтекста
Функция СтрокуВЧисло(СтрокаСЧислом)
    МассивСтрок = СтрРазделить(СтрокаСЧислом, "0123456789", Ложь);
    Для Каждого ТекСтрока из МассивСтрок Цикл 
        СтрокаСЧислом = СтрЗаменить(СтрокаСЧислом, ТекСтрока, "");
    КонецЦикла;
    
    Возврат (СтрокаСЧислом);
КонецФункции
   JuixyJes
 
8 - 06.06.19 - 17:45
(7) Пробовала вот так
   JuixyJes
 
9 - 06.06.19 - 17:47
(3) Погода - прекрасная! Сегодня +19 завтра +20 а в субботу и вовсе +26-30
   runoff_runoff
 
10 - 06.06.19 - 17:51
это очень сложный вопрос.. вряд ли кто-то поможет..
   JuixyJes
 
11 - 06.06.19 - 17:52
(10) Ахахах, очень забавно)) Я и сама впринципе понимаю что нужно сделать, и даже как это сделать, но не получается
   JuixyJes
 
12 - 06.06.19 - 17:52
(7) В этой функции даже вижу заветную "10", но дальше результат принимает пустое значение
   Фрэнки
 
14 - 06.06.19 - 17:53
(12) А что мешает сделать
СтрЗаменить(СтрокаСЧислом, "%", "");

Это при условии, что там, в этой строке встречаются только лишний %
   Кодер
 
15 - 06.06.19 - 17:53
На бумажке сделай, пойми - как ты хочешь это сделать.

Я бы читал по символу, если символ - не цифра или точка, то игнорировал. Если цифра, то умножила результат на 10 и добавил цифру. Если запятая, то чуть сложней.
   MakaMaka
 
16 - 06.06.19 - 17:54
Ну или статично написать. если 10% тогда число/10
   Кодер
 
17 - 06.06.19 - 17:54
потом бы вспомнил, что результат надо инициализировать.
   MakaMaka
 
18 - 06.06.19 - 17:54
(15) ерунда, ваш метод из 15.15% сделает 1515, за это надо отбивать шурундулы
   MakaMaka
 
19 - 06.06.19 - 17:55
Надо просто делить на 10
   Кодер
 
20 - 06.06.19 - 17:56
Чего отбивать??? Это вообще безопасно гуглить?

ЗЫ Автор, может на этапе ввода данных не давать вводить фигню?
   Фрэнки
 
21 - 06.06.19 - 17:57
(20) да не, она скорей всего разбирает какой-то перенос данных
   MakaMaka
 
22 - 06.06.19 - 17:57
(20) автор не может, причем ничего.

(21) она разбирает, перенос данных? Тогда мы все в опасности
   Фрэнки
 
23 - 06.06.19 - 18:02
(22) А если она только учится? Пусть учится - пострадают кошки и то, только те, которые она сама себе придумала.
   MakaMaka
 
24 - 06.06.19 - 18:03
Ломать она уже умеет, раз не понимает что 10% это 0,1 в типе число. Так что ликвидатор готов к боевой задачи. Пусть крушит
   MakaMaka
 
25 - 06.06.19 - 18:04
(23) Если она хочет вменяемости, то пусть кажет буфера
   RomanYS
 
26 - 06.06.19 - 18:10
Интересный факт.
В большей части вопросов про формы на мисте не будет указан их тип (УФ/ОФ). А здесь есть))
   MakaMaka
 
27 - 06.06.19 - 18:13
(26) значит за аватаркой мужик. он нас троллит.
   novichok79
 
28 - 07.06.19 - 07:10
накидал за пару минут

&НаКлиентеНаСервереБезКонтекста 
Функция СтрокуВЧисло(СтрокаСЧислом)

    Если СтрЗаканчиваетсяНа(СтрокаСЧислом, "%") Тогда
        Делитель = 100;
    Иначе Делитель = 1;
    КонецЕсли;

    РазрешенныеСимволы = "01234567890,.";
    НоваяСтрока = "";
    
    Для Счетчик = 1 По СтрДлина(СтрокаСЧислом) Цикл 
        
        Символ = Сред(СтрокаСЧислом, Счетчик, 1);
        
        Если СтрНайти(РазрешенныеСимволы, Символ) > 0 Тогда 
            
            НоваяСтрока = НоваяСтрока + Символ;
            
        КонецЕсли;
        
    КонецЦикла;
    
    Если Не ПустаяСтрока(НоваяСтрока) Тогда РезультатФункции = Число(НоваяСтрока) / Делитель;
    Иначе РезультатФункции = 0;
    КонецЕсли;

    Возврат РезультатФункции;
    
КонецФункции
   Сияющий в темноте
 
29 - 07.06.19 - 08:42
Начнем с того,что строку нужно парсить.
то есть,мы читаем число из строки до первого кривого символа,а потом по нему решаем,что делать.
есть мнение,что если символ %,то надо умножать результат на 100.

ну и,сначала нужно понять,что мы хотим получить в следующих случаях
10%15
11+22
12/3
3а8


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.