v8: Безопасное преобразование строки в числоТиповая функция 1С вызывает исключение, если не может преобразовать строку в число.
Моя функция возрващает в таком случае неопределено. | | Автор статьи: Гений 1С Последняя редакция №1 от 24.04.07 URL: http://kb.mista.ru/article.php?id=515 | |
Ключевые слова: число,строка,конвертация
Функция обВЧисло(С) Экспорт
Перем Р, Симв;
Р="";
БылаТочка=ложь;
БылЗнак=ложь;
Для Инд=1 По СтрДлина(С) Цикл
Симв=Сред(С, Инд,1);
Если Симв=" " Тогда
Продолжить;
КонецЕсли;
Если Симв="." ИЛИ Симв="," Тогда
Если БылаТочка Тогда
Возврат Неопределено;
КонецЕсли;
Р=Р+".";
БылаТочка=истина;
Продолжить;
КонецЕсли;
Если Симв="+" ИЛИ Симв="-" Тогда
Если БылЗнак ИЛИ Р<>"" Тогда
Возврат Неопределено;
КонецЕсли;
Р=Р+Симв;
БылЗнак=истина;
Продолжить;
КонецЕсли;
Если Найти("0123456789", Симв)=0 Тогда
Возврат Неопределено;
КонецЕсли;
Р=Р+Симв;
КонецЦикла;
Если Р="" Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Число(Р);
КонецФункции |