2012-01-08 38 views
0

您將使用什麼技術使下面的測試通過?使用十進制類型處理比率的算法

乾杯,
Berryl

[Test] 
    public void PercentageToSplit() { 
     for (int i = 1; i < 20; i++) { 
      decimal ratio = 1m/i; 
      Console.WriteLine(ratio); 

      var splitCount = (int)Math.Floor(1/ratio); // *** this won't do 
      Console.WriteLine(splitCount); 

      Assert.That(splitCount, Is.EqualTo(i)); 
     } 

1 becomes 1 
0.5 becomes 2 
0.3333333333333333333333333333 becomes 3 
0.25 becomes 4 
0.2 becomes 5 
0.1666666666666666666666666667 becomes 5 
Test 'PercentageToSplit' failed: 
    Expected: 6 
    But was: 5 

回答

2

如果你改變Math.FloorMath.Round你的測試通過。

+0

是的,確實如此...謝謝! – Berryl 2012-01-08 01:39:06

+0

你忘記標記他的帖子作爲答案。 – 2012-01-08 01:42:56

+1

不,我沒有。所以說我不能再這麼做了 – Berryl 2012-01-08 01:44:39