F# – 乘以float乘以int

可能是一个愚蠢的问题,但我刚刚开始使用F#而且我遇到了一些问题.

我有这样的功能

let multiplyByTwo x = x * 2

当我这样称呼时:

let result = multiplyByTwo 5

一切都好,结果是10.

当我这样称呼时:

let result = multiplyByTwo 2.5

我希望得到5或5.0.但实际结果如下:

let result = multiplyByTwo 2.5;;
———————————^^^

stdin(4,28): error FS0001: This expression was expected to have type

06003

but here has type

06004

因为我希望这个函数有点通用(即接受浮点数和整数),我不喜欢这个.我的问题当然是:如何解决这个问题?

解决方法

let inline mulBy2 x = (float x) * 2.0

let a = mulBy2 3 // 6.0 : float
let b = mulBy2 2.5 // 5.0 : float
let c = mulBy2 "4" // 8.0 : float

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效