2013-08-21 118 views
0

我需要一個建議來找出兩磅(磅)值之間的差異。我想在2種方式,2磅(磅)值之間的差異

第一種方式,

var pound1 = 151.10; 
var pound2 = 142.19; 
var finalPoundValue = (pound1 - pound2); 

// result 8.91 -> 8 Pounds 91 Ounce 

方式二,

var value1 = 151.10; 
var value2 = 142.19; 
var poundDiff = (151 - 142); 
var ounceDiff = (10 - 19); 

// result 9 Pounds -9 Ounce 

,但不知道哪一個是找磅值之間的差值的正確途徑。或者任何其他最好的方法來解決這個問題..?

+0

這不是91盎司,它是91/100盎司。 91盎司將是另外5磅和0.69(69/100)盎司。你的第一個公式應該是8磅14.56盎司(16 * .91 = 14.56)。 – Tim

回答

4

8.91磅是不是 8磅91盎司,不是遠射。這是8磅和(0.91 * 16 =〜15)盎司,因爲有16盎司到一英鎊。

我會用你的第一個變種,以獲得英鎊差異,那麼一些調整,將其轉換成磅和盎司,是這樣的:

var pound1 = 151.10; 
var pound2 = 142.19; 
var poundDiff = (pound1 - pound2); 

var finalPoundValue = (int) poundDiff; 
var finalOunceValue = (int) ((poundDiff - finalPoundValue) * 16); 
+0

讓我想起板球,4.5分+0.2分= 5.1分。 :) – dotNET

+0

Bah,@dotNET,巴基斯坦任何人都知道板球怎麼樣?其實,我應該閉口不談,因爲澳大利亞目前做得不太好:-) – paxdiablo

+0

顯然(只是顯然),你是一句話來不及意識到這一點。 ;-) – dotNET

1

1 pount = 16盎司。

所以,你必須將這個數分成的folloiwng:假設8.91lb

  1. 磅= INT(8.91)= 8磅

  2. 盎司=(8.91 - INT(8.91))* 16 = 14.56

對兩個數字都做同樣的事,然後加磅到磅,盎司到盎司(或減),然後再進行返回。如果您添加時超過16盎司,則增加1磅,並從盎司減去16。

這是一個快速的答案讓你看。

+0

這是一個嚴重的建議?我不知道你是否拿着米奇。 – paxdiablo

+0

@paxdiablo - 不是我的回答...但「採取米奇」是什麼意思? – Tim

+0

@Tim:這是http://en.wikipedia.org/wiki/Taking_the_piss(取笑)的禮貌形式。 – paxdiablo

1

如果我使用體重很多,我會創建一個類來表示體重。這個班將存儲重量在一個單位的措施,並具有隻讀屬性獲得不同的計量單位。

class Weight 
{ 
    private double ounces; 
    private const double OUNCES_PER_POUND = 16.0; 

    public double Pounds 
    { 
     get { return ounces/OUNCES_PER_POUND; } 
    } 

    public double Ounces 
    { 
     get { return ounces; } 
    } 

    public Weight(double pounds) 
    { 
     this.ounces = pounds * OUNCES_PER_POUND; 
    } 

    public Weight(int pounds, double ounces) 
    { 
     this.ounces = pounds * OUNCES_PER_POUND + ounces; 
    } 

    // An example operator, probably want to implement addition 
    // and perhaps multiplication/division as well 
    public static Weight operator -(Weight w1, Weight w2) 
    { 
     return new Weight((w1.ounces - w2.ounces)/OUNCES_PER_POUND); 
    } 

    public override string ToString() 
    { 
     return String.Format("{0} pounds, {1} ounces", (int)Pounds, Math.Round(Ounces % OUNCES_PER_POUND, 4)); 
    } 
} 

class Program 
{ 
    public static void Main() 
    { 
     var w1 = new Weight(151.10); 
     var w2 = new Weight(142.19); 
     Console.WriteLine("w1: " + w1.ToString());   // 151 pounds, 1.6 ounces 
     Console.WriteLine("w2: " + w2.ToString());   // 142 pounds, 3.04 ounces 
     Console.WriteLine("diff: " + (w1 - w2).ToString()); // 8 pounds, 14.56 ounces 
    } 
}