чтение чисел с плавающей точкой с 1. # значениями QNAN в python - PullRequest
2 голосов
/ 04 июня 2010

Кто-нибудь знает о синтаксическом анализаторе строк в плавающем языке Python, который может справиться с номерами MSVC nan (1. # QNAN)? В настоящее время я просто использую float(str), который хотя бы справляется с "nan".

Я использую скрипт на python для чтения вывода программы на C ++ (работает на платформах linux / mac / win), и при чтении этих значений скрипт отключается. (Я уже нашел библиотеку C ++ для последовательного вывода значений на разных платформах, но иногда приходилось сравнивать прошлые результаты, так что иногда это всплывает.)

1 Ответ

2 голосов
/ 04 июня 2010

Поскольку вам приходится иметь дело с устаревшими выходными файлами, я не вижу другой возможности, кроме как написать функцию robust_float:

def robust_float(s):
    try:
        return float(s)
    except ValueError:
        if 'nan' in s.lower():
            return float('nan')
        else:
            raise
...