2013-08-19 2 views
17

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

let add x y = 
    x + y 

let j = 2 
add 1.1 j 

В C# Float + INT = Float

float j = 1.1f + 5; 
+2

В C# добавление 'float' в' double' возвращает 'double'. Ваш код добавляет 'float' и' int'. – Lee

+0

Хотя кажется очевидным, что у вас есть автоматическое, бесшумное литье значений на языке, я предпочитаю F # делать что-то. Избегает ошибок, возникающих в результате автоматического литья типов. –

+0

@lee - Это смешно. Я хотел поставить не двойной. : S исправил Q. – NitroxDM

ответ

22

EDIT: неправильно истолковывать вопрос ...

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

add 1.1 (float 2) 
1

Ниже приведены некоторые примеры, иллюстрирующие синтаксис для литья:

Пусть х: INT = 5 (литой х, чтобы быть целым числом)

Пусть B: байт = байт х (б литой быть байт)

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

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

+0

Я уверен, что есть способ выполнить встроенный листинг ... – feralin

+2

Первый пример - это не отличная игра. В любом случае было бы установлено, что это int. –

4

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

let add x y = x + (float y) 
8

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

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 
+0

Проходя его два поплавка отлично работает. добавьте 1.1 2.0 без проблем. – NitroxDM

1

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

add 1.1 (j |> float) 

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

Смежные вопросы