我使用下面放个小数位格式的量,但是当我没有得到正确的量与如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