2
我有一個簡單的溫度轉換器類,我正在努力。錯誤FS0001:類型'int'與'float'類型不匹配
open System
type Converter() =
member this.FtoC (f : float) = (5/9) * (f - 32.0)
member this.CtoF(c : float) = (9/5) * c + 32.0
let conv = Converter()
54.0 |> conv.FtoC |> printfn "54 F to C: %A"
32.0 |> conv.CtoF |> printfn "32 C to F: %A"
我正在以下編譯錯誤
prog.fs(4,46): error FS0001: The type 'float' does not match the type 'int'
prog.fs(4,39): error FS0043: The type 'float' does not match the type 'int'
我缺少什麼?它推斷爲int的代碼是什麼部分?
即使兩個整數的劃分不是推斷爲單個或浮點? – fahadash
不,它是一個整數除法「9/5 = 1」,而「9.0/5.0 = 1.8」。事實上,使用整數除法,然後將結果轉換爲浮點數將是一個錯誤,因爲您會得到1而不是1.8! –