В общем случае, задача конвертации строки в число - не имеет решения. Преобразование всегда будет только для конкретных (локальных, частных) условий. Только если точно знать, в каком формате ожидать символьную строку для преобразования
Например, даже по приведенному коду можем получить не корректное преобразование в зависимости от формата строки
info(strFmt('%1', str2num('1e+5'))); // Не корректное преобразование
info(strFmt('%1', str2num('1.0e+5'))); // Корректное преобразование
А по поводу "некоторых стран", некоторые бухгалтера в качестве разделителя целой и дробной части числа используют дефис (минус)
info(strFmt('%1', str2num('123-45')));
Это "переводится" не 123 минус 45, а 123 руб 45 коп