public static UnitScale <TUnitType> FromNumberOfOtherUnitsPerNewUnit(string nameOfScale, decimal multipleOfOther, UnitScale <TUnitType> otherUnit)//mainly replaces old thing { return(new UnitScale <TUnitType>( nameOfScale, baseUnits => otherUnit.FromBase(baseUnits) / multipleOfOther, newUnits => otherUnit.ToBase(newUnits * multipleOfOther))); }
public static UnitScale <MultipliedUnitType <T1, T2> > GetMultipliedScale(UnitScale <T1> s1, UnitScale <T2> s2) => new UnitScale <MultipliedUnitType <T1, T2> >( s1.NameOfScale + " * " + s2.NameOfScale, unitsBase => s2.FromBase(s1.FromBase(unitsBase)), unitsThis => s2.ToBase(s1.ToBase(unitsThis)) );
private void Recalculate(object sender, EventArgs e) { if (degInReady && scaleInReady && scaleOutReady) { degreesOutput.Text = scaleOutVal.FromBase(scaleInVal.ToBase(degreesInputVal)).ToString(); } else { message.Text = "complete all the fields"; } }
public static UnitScale <PerUnitType <T1, T2> > GetPerScale(UnitScale <T1> s1, UnitScale <T2> s2) => new UnitScale <PerUnitType <T1, T2> >( s1.NameOfScale + " Per " + s2.NameOfScale, unitsBase => s1.FromBase(unitsBase) / s2.FromBase(1), unitsThis => s1.ToBase(unitsThis) / s2.ToBase(1));
public static UnitScale <MultipliedUnitType <T1, T1> > GetSquaredScale(UnitScale <T1> s1) => new UnitScale <MultipliedUnitType <T1, T1> >( "Squared scale of: " + s1.NameOfScale, unitsBase => s1.FromBase(s1.FromBase(unitsBase)), unitsThis => s1.ToBase(s1.ToBase(unitsThis)));
public static double Convert(double degrees, UnitScale <TUnitType> from, UnitScale <TUnitType> to) { return((double)to.FromBase(from.ToBase((decimal)degrees))); }