Изучая 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;
Изучая 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;
EDIT: неправильно истолковывать вопрос ...
Я уверен, что функция float()
будет делать работу:
add 1.1 (float 2)
Ниже приведены некоторые примеры, иллюстрирующие синтаксис для литья:
Пусть х: INT = 5 (литой х, чтобы быть целым числом)
Пусть B: байт = байт х (б литой быть байт)
проверить эту ссылку:
Я уверен, что есть способ выполнить встроенный листинг ... – feralin
Первый пример - это не отличная игра. В любом случае было бы установлено, что это int. –
Вы можете преобразовать в поплавка с помощью float
Функция:
let add x y = x + (float y)
Во-первых, функции у вас указан тип 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
Проходя его два поплавка отлично работает. добавьте 1.1 2.0 без проблем. – NitroxDM
Поскольку float
является функцией, есть определенная элегантность
add 1.1 (j |> float)
На первый взгляд, это не намного лучше, чем add 1.1 (float 2)
, но если вы хотите, чтобы преобразовать результат долго вычисление до поплавка, передняя труба может быть очень полезна.
В C# добавление 'float' в' double' возвращает 'double'. Ваш код добавляет 'float' и' int'. – Lee
Хотя кажется очевидным, что у вас есть автоматическое, бесшумное литье значений на языке, я предпочитаю F # делать что-то. Избегает ошибок, возникающих в результате автоматического литья типов. –
@lee - Это смешно. Я хотел поставить не двойной. : S исправил Q. – NitroxDM