#region Weights
private double StoneToKg(double Stone, double pounds)
{
return (Stone * 14 + pounds) * 0.4535970244035199;
}
private double[] KgToStone(double p)
{
double T = (p * 0.1574714285714286);
double Stn = Math.Floor(T);
double Pounds = (T - Stn) * 14;
return new double[2] { Stn, Pounds };
}
#endregion
#region Heights
private double CmToM(double Cm)
{
return Cm * 0.01;
}
private double MToCm(double M)
{
return M * 100;
}
private double FeetToMeters(double Feet, double inch)
{
Feet *= 12;
return (Feet + inch) * 0.025399999961392;
}
private double[] MetersToFeet(double Meters)
{
double feet = Math.Floor(Meters * 3.2808399);
double inch = (Meters * 3.2808399) - Math.Floor(Meters * 3.2808399);
inch *= 12;
return new double[2] { feet, inch };
}
private double feetInchToCentimeters(double feet, double inch)
{
return MToCm(FeetToMeters(feet, inch));
}
private double[] CentimetersToFeetInch(double Cm)
{
return MetersToFeet(CmToM(Cm));
}
#endregion
これは私が使用している変換コードです。現在、石からkgへの変換とその逆の変換に問題があります(100 stn 0ポンドからkgへの変換は107 stnと2.00000000000014ポンドを返します)が、100 kgから石への変換と元への変換は機能します。丸めだと思います答えはありますが、どこをどのように修正すればよいかわかりません。変換を処理できる正確な変換を行う方法を探しています。
ただし、他のコードの結び付けや提案は大歓迎です。
(それにも問題がある場合に備えて、高さの変換を含めました)。