相关疑难解决方法(0)

使用F#测量单位从m/s转换为km/h

我正在学习F# - 目前正在研究测量单位.我有一个简单的计算返回米每秒,我想引入一个函数将其转换为每小时公里.

我的代码看起来像这样:

[<Measure>] type kg
[<Measure>] type s
[<Measure>] type m
[<Measure>] type km
[<Measure>] type h            

let msToKmph(speed : float<m/s>) =
    (float speed) * 3.6<km/h>

let gravityOnEarth = 9.81<m/s^2>
let heightOfJump = 3.5<m>

let speedOfImpact = sqrt (2.0 * gravityOnEarth * heightOfJump)
let speedOfImpactKmh = msToKmph(speedOfImpact)
Run Code Online (Sandbox Code Playgroud)

这是有效的 - 我得到8.28673639 m/s和29.832251 km/h.我不确定的是,这是表达不同单位之间关系的最佳方式.这可以更优雅地完成吗?

例如,行(浮动速度)从速度参数中移除单位信息,使msToKmph返回km/h.如果我在进行计算之前没有删除单位信息,则返回的单位为:km m /(hs)

f# units-of-measurement

8
推荐指数
1
解决办法
4934
查看次数

标签 统计

f# ×1

units-of-measurement ×1