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

Cast int, чтобы плавать в F #

Изучение F #, синтаксис по-прежнему мне незначителен. Как заставить это целое число плавать?

let add x y =
    x + y

let j = 2
add 1.1 j

В С# Float + int = Float

float j = 1.1f + 5;
4b9b3361

Ответ 1

EDIT: неверный вопрос...

Я уверен, что функция float() выполнит задание:

add 1.1 (float 2)

Ответ 2

Во-первых, указанная вами функция имеет тип int->int->int, что означает, что она принимает 2 int и возвращает int. Если вы хотите использовать float, вам нужно указать тип одного из аргументов:

let add (x : float) y = x + y
//add : float->float->float

Как уже упоминалось, вы можете использовать float с помощью функции float():

float 2 //2 : float

Если вы используете числовые литералы, например, в вашем примере, вы можете просто использовать 2.0 вместо 2, который имеет тип float.

add 1.1 2.0

Ответ 3

Вы можете преобразовать в float с помощью функции float:

let add x y = x + (float y)

Ответ 4

Вот несколько примеров, показывающих синтаксис для кастинга:

пусть x: int = 5 (листинг x является целым числом)

пусть b: byte = byte x (листинг b является байтом)

Проверьте эту ссылку:

http://msdn.microsoft.com/en-us/library/dd233220.aspx

Ответ 5

Поскольку float является функцией, существует некоторая элегантность для

add 1.1 (j |> float)

На первый взгляд, это не намного лучше, чем add 1.1 (float 2), но если вы хотите преобразовать результат длинного вычисления в float, прямой канал может быть очень полезным.