Подтвердить что ты не робот

Конвертировать float в строку в F #?

Как преобразовать float в строку в F #. Я ищу функцию с этой подписью:

float -> string

4b9b3361

Ответ 2

Как отмечали другие, есть несколько вариантов. Два простейших - это вызов метода ToString и использование функции string. Существует тонкая разница между двумя, о которых вы должны знать. Вот что они делают в моей системе:

> sprintf "%f" 1.2;;
val it : string = "1.200000"
> string 1.2;;
val it : string = "1.2"
> 1.2.ToString();;
val it : string = "1,2"

Первые два отличаются друг от друга, но оба имеют смысл, но почему черт сделал последнее возвращение "1,2"?

Это потому, что у меня есть региональные настройки в Чехии, где десятичная точка написана как запятая (doh!). Таким образом, функция string использует инвариантную культуру, а ToString использует текущую культуру (потока). В некоторых странных культурах (например, чешский:-)) это может вызвать проблемы! Вы также можете указать это явно с помощью метода ToString:

> 1.2.ToString(System.Globalization.CultureInfo.InvariantCulture);;
val it : string = "1.2"

Таким образом, выбор метода, вероятно, будет зависеть от того, как вы хотите использовать строку - для презентации вы должны соблюдать настройку ОС, но для создания переносных файлов вы, вероятно, хотите иметь инвариантную культуру.

Ответ 3

Используйте функцию 'string'.

string 6.3f

Ответ 5

Чтобы округлить ответы:

(fun (x:float) -> x.ToString())

:)