gpt4 book ai didi

f# - 错误 FS0001 : The type 'int' does not match the type 'float'

转载 作者:行者123 更新时间:2023-12-04 02:23:59 25 4
gpt4 key购买 nike

我正在尝试使用一个简单的温度转换器类。

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 ?

最佳答案

F# 不会自动将整数转换为 float ,因此您需要:

type Converter() = 
member this.FtoC (f : float) = (5.0/9.0) * (f - 32.0)
member this.CtoF(c : float) = (9.0/5.0) * c + 32.0

在您的原始代码中 5/9类型为 intf-32.0类型为 float .数值运算符,如 *要求两个参数是同一类型,所以你会得到一个错误。在固定版本中,我使用了 5.0/9.0 , 类型为 float (因为它使用 float 字文字),所以编译器很高兴。

关于f# - 错误 FS0001 : The type 'int' does not match the type 'float' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24398475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com