예제 #1
0
파일: Unit.cs 프로젝트: cartermp/metric
        /// <summary>
        /// Returns a new unit with the specified prefix
        /// </summary>
        /// <param name="prefix"></param>
        /// <returns>new Unit</returns>
        public Unit ChangePrefix(Prefix prefix, BaseUnit baseUnit)
        {
            int difference = ((sbyte)GetPrefix(baseUnit) - (sbyte)prefix) * GetPower(baseUnit);
            var prefixes   = new sbyte[Length];

            Prefixes.CopyTo(prefixes, 0);
            prefixes[(sbyte)baseUnit - 1] = (sbyte)prefix;
            double quantity = Quantity * Math.Pow(10, difference);

            return(new Unit(quantity, new Vector <sbyte>(prefixes), Powers));
        }