Был связанный вопрос по конвертации другим способом . Это немного сложно, потому что формат с плавающей запятой зависит от текущей культуры ОС. Функция float
работает с числами в инвариантном культурном формате (что-то вроде «3.14»). Если у вас есть float в зависимом от культуры формате (например, «3,14» в некоторых странах), вам нужно будет использовать Single.Parse
.
Например, на моей машине (с настройками чешской культуры, которая использует «3,14»):
> float "1.1";;
val it : float = 1.1
> System.Single.Parse("1,1");;
val it : float32 = 1.10000002f
Обе функции выдают исключение, если вызваны наоборот. Метод Parse
также имеет перегрузку, которая принимает CultureInfo
, где вы можете явно указать культуру