Попытка добавить обычное значение с плавающей точкой к типу с плавающей точкой <measure>.е # - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь преобразовать обычный тип с помощью float в другой тип с помощью float [], и я не уверен, что делать дальше.

Тип, который я хочу преобразовать в:

[<Measure>] type radian
[<Measure>] type degree
[<Measure>] type km
[<Measure>] type mi
type LatLong = { Lat : float<degree>; Long : float<degree> }

Тип, который я хочу преобразовать из:

type Msg = {
    Mmsi: int;
    Time: string;
    Latitude: float;
    Longitude: float;
}

Я рассчитывал, что преобразование, такое как:

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

будет работать, но, похоже, по какой-то причине это не так, так что у кого-то есть пониманиев это?Был бы очень признателен!

1 Ответ

0 голосов
/ 22 октября 2018

Если никакая другая формула не используется, вы преобразуете числовой тип в числовой тип с единицей измерения, умножая ее на единицу измерения, т.е. на единицу.

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;}

Этозадокументировано на странице Microsoft о единицах измерения , под конверсиями .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...