Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types 尝试将常规浮点值添加到具有浮点值的类型<;测量>;。f#_Types_Casting_F# - Fatal编程技术网

Types 尝试将常规浮点值添加到具有浮点值的类型<;测量>;。f#

Types 尝试将常规浮点值添加到具有浮点值的类型<;测量>;。f#,types,casting,f#,Types,Casting,F#,我正在尝试将带有float的常规类型转换为带有float[]的不同类型,但我不确定如何继续 我希望转换为的类型: [<Measure>] type radian [<Measure>] type degree [<Measure>] type km [<Measure>] type mi type LatLong = { Lat : float<degree>; Long : float<degree> } 我计算了一个转

我正在尝试将带有float的常规类型转换为带有float[]的不同类型,但我不确定如何继续

我希望转换为的类型:

[<Measure>] type radian
[<Measure>] type degree
[<Measure>] type km
[<Measure>] type mi
type LatLong = { Lat : float<degree>; Long : float<degree> }
我计算了一个转换,例如:

let dist = {Lat = msg.Latitude<degree>; Long = msg.Longitude<degree>}
let dist={Lat=msg.Latitude;Long=msg.Longitude}

会起作用,但由于某种原因,它似乎不起作用,所以有人对此有任何见解吗?非常感谢

如果不涉及其他公式,则通过与“unit”度量单位相乘,即乘以1,将数值类型转换为具有度量单位的数值类型

let msg = { Mmsi = 42; Time = string System.DateTime.Now; Latitude = 0.; Longitude = 0. }
let dist = {Lat = msg.Latitude * 1.<degree>; Long = msg.Longitude * 1.<degree>}
// val dist : LatLong = {Lat = 0.0;
//                       Long = 0.0;}
let msg={Mmsi=42;Time=string System.DateTime.Now;纬度=0;经度=0。}
设dist={Lat=msg.Latitude*1;Long=msg.Longitude*1.}
//val-dist:LatLong={Lat=0.0;
//Long=0.0;}

这被记录在转换下的上。

可能值得一提的是,这可以用一个直接的大小写来反转,它将“剥离”度量单位。@202\u您是对的。这被正确地称为重载转换函数,请参见,18.2.10。在规范中,您还可以找到许多有关度量单位的信息。
let msg = { Mmsi = 42; Time = string System.DateTime.Now; Latitude = 0.; Longitude = 0. }
let dist = {Lat = msg.Latitude * 1.<degree>; Long = msg.Longitude * 1.<degree>}
// val dist : LatLong = {Lat = 0.0;
//                       Long = 0.0;}