我使用下面放個小數位格式的量,但是當我沒有得到正確的量與如25000測試我期待25000.00 但我得到25000格式化小數2 places.Problem
時我做錯了什麼?我應該如何改變它?
[TestCase(123.45453, 123.45, 2)]
[TestCase(125.55453, 125.55, 2)]
[TestCase(125.55653, 125.56, 2)]
[TestCase(125.56554, 125.57, 2)]
[TestCase(25000,25000.00,2)]
public void MyRoundFunction_returns_amount_with_decimal_places(decimal amountToTest, decimal expected, int decimalPlaces)
{
decimal actual = MyRoundFunction(amountToTest, MidpointRounding.ToEven, decimalPlaces);
Assert.AreEqual(expected, actual);
}
public static decimal MyRoundFunction(decimal value, MidpointRounding midpointRounding, int decimalPlaces)
{
return Math.Round(value, decimalPlaces, midpointRounding);
}
編輯:
如果你是格式化十進制值不論金額多少總是有2位小數,即使是像25000,你想25000.00或1234.224543收益1234.22如何將你的代碼呢?
感謝您的答覆。將單元測試留在一邊秒。所有我試圖做的是創建一個函數/ s,將格式化我的小數只有2小數,它有時返回一個給定小數的字符串,有時返回一個十進制給出了一個小數.And似乎不適用於一個圓形數字,例如25000。我應該不同地編寫我的函數還是有2個overloads.one返回一個字符串,而另一個返回一個小數?現在變得與格式混淆。感謝您提供更多建議 – user9969
@ user231465:這裏的關鍵詞是* format *。這表明結果應該是一個字符串,絕對不是**小數。你不能只有返回類型有不同的重載 - 但如果你有一個方法,包括返回一個字符串的名稱中的'格式'一詞,你可以有另一個不同的名稱(如果你真的認爲它是合適的),它返回一個「十進制」... –
感謝您的答覆。只是爲了確保我明白你的建議。轉換爲字符串並相應地格式化,然後在appriopriateate時將其轉換爲小數。這就是你所說的? – user9969