F# Int 的平方根

eis*_*man 2 floating-point int f# types sqrt

我正在用 F# 构建一个程序,其中需要计算整数值的平方根。我搜索后发现没有任何函数可以在不使用强制转换的情况下执行此操作int -> float

是否有一个函数可以计算整数的平方根而无需进行不必要的转换?

Tom*_*cek 5

如果您只想要一个接受整数并将其平方根作为浮点返回的函数,那么使用函数float将 int 转换为浮点,然后调用sqrt是可行的方法:

sqrt (float n)
Run Code Online (Sandbox Code Playgroud)

原则上,F# 可以隐式允许这种转换,但我认为它不会这样做,因为不清楚整数的平方根应该是多少(如评论中所述)。在 C# 中,您可以编写Math.Sqrt(n),但这可行,因为 C# 允许从intfloat程序中任何位置的隐式转换。

如果您想要返回整数的整数的平方根,那么没有标准的方法可以做到这一点(如评论中所述),因此由您来实现您需要的功能。