2013-08-19 14 views
17

Nauka F #, składnia jest nadal całkiem obca dla mnie. Jak obsłużyć tę liczbę całkowitą do unoszenia się?Rzucanie int do float w F #

let add x y = 
    x + y 

let j = 2 
add 1.1 j 

C# Pływak + int = pływakowy

float j = 1.1f + 5; 
+2

W języku C# dodanie 'float' do' double' zwraca 'double'. Twój kod dodaje 'float' i' int'. – Lee

+0

Podczas gdy wydaje się oczywiste, że masz automatyczne, ciche rzucanie wartości w języku, wolę sposób F # robienia rzeczy. Unika błędów wynikających z automatycznego rzucania typów. –

+0

@lee - To zabawne. Zamierzałem umieścić int nie podwójny. : S naprawiono Q. – NitroxDM

Odpowiedz

22

EDIT: błędnie odczytany pytanie ...

jestem całkiem pewny, że funkcja float() by wykonać zadanie:

add 1.1 (float 2) 
1

Oto przykłady pokazujące składni odlewania:

Niech x int = 5 (odlewu X jest liczbą całkowitą)

let b: bajtów = bajt x (oddanych b być bajt)

Sprawdź ten link:

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

+0

Jestem prawie pewny, że istnieje sposób na obsadzenie linii ... – feralin

+2

Pierwszy przykład nie jest tak naprawdę obsadą. Można by sądzić, że i tak jest int. –

4

można konwertować do pacy przy użyciu Funkcja float:

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

Po pierwsze, funkcja podany użytkownik ma typ int->int->int, co oznacza, że ​​zajmuje on 2 int s i zwraca wartość int. Jeśli chcesz go używać float s trzeba określić typ jednego z argumentów:

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

Jak wspominają inni, można oddać do float pomocą float() funkcję:

float 2 //2 : float 

Jeśli używasz literałów numerycznych, jak w twoim przykładzie, możesz po prostu użyć 2.0 zamiast 2, który ma typ float.

add 1.1 2.0 
+0

Przekazywanie dwóch pływaczy działa dobrze. dodaj 1.1 2.0 działa bez problemu. – NitroxDM

1

Ponieważ float jest funkcją, jest pewna elegancja

add 1.1 (j |> float) 

Na pierwszy rzut oka, to nie jest dużo lepiej niż add 1.1 (float 2), ale jeśli chcesz przekonwertować wynik długa obliczenia do float, rura do przodu może być bardzo przydatna.

Powiązane problemy