📄 misc.cs
字号:
using System;
using OpenNETCF.IO.Serial;
using System.Text;
using System.Collections;
using System.Threading;
using System.IO;
using System.Globalization;
namespace OpenNETCF.IO.Serial.GPS
{
public class Misc // utility functions
{
public static decimal ToDecimal(object obin)
{
string StringSeparator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
if (StringSeparator == ",")
return Convert.ToDecimal(obin.ToString().Replace(".",","));
else
return Convert.ToDecimal(obin);
}
public static decimal KnotsToMph(decimal Knots)
{
return Knots * 1.151m;
}
public static decimal KnotsToKph(decimal Knots)
{
return Knots * 1.852m;
}
public static decimal MetersToFeet(decimal metres)
{
return metres * 3.280839895013122m;
}
public static decimal MetersToInches(decimal metres)
{
return metres * 39.700874015748m;
}
public static decimal MetersToYards(decimal metres)
{
return metres * 1.0936132983377087m;
}
public static decimal MetersToKM(decimal metres)
{
return metres * 0.001m;
}
public static decimal MetersToCm(decimal metres)
{
return metres * 100m;
}
public static decimal MetersToMm(decimal metres)
{
return metres * 1000m;
}
public static decimal MetersToMiles(decimal metres)
{
return metres * 0.0006213711922373347m;
}
public static decimal KmToMiles(decimal km)
{
return km * 0.6213711922373347m;
}
public static decimal NmToMeters(decimal nm)
{
return nm * 1852m;
}
public static decimal NmToMiles(decimal nm)
{
return nm * 1151m;
}
/// <summary>
/// Converts fractional degrees to decimal degrees
/// </summary>
/// <param name="decin"></param>
/// <returns></returns>
public static decimal FractionalToDecimalDegrees(decimal decin)
{
bool positve = decin>0;
string dm=Math.Abs(decin).ToString("00000.0000");
//Get the fractional part of minutes
int intdelim=dm.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
decimal fm = Misc.ToDecimal("0" + dm.Substring(intdelim));
//Get the minutes.
decimal min = Misc.ToDecimal(dm.Substring(intdelim - 2, 2));
//Degrees
decimal deg= Misc.ToDecimal(dm.Substring(0, intdelim - 2));
decimal result = deg + (min + fm) / 60;
if (positve)
return result;
else
return -result;
}
//format (dd.dddd) to decimal minute format (ddmm.mmmm).
//Example 58.65375
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -