У меня есть 2 метода преобразования, как показано ниже:
private const decimal MaxValidValue = 99.99m;
public decimal ConvertABToC(decimal a, decimal b)
{
return a * b;
}
public void ConvertCtoAB(decimal c, ref decimal a, ref decimal b)
{
if (c > MaxValidValue*MaxValidValue)
{
throw new ApplicationException();
}
if (c <= MaxValidValue)
{
a = 1.00m;
b = c;
}
else
{
// need to introduce some logic or assumptions here
}
}
Необходимо знать 3 важных момента:
1) Поэтому переменные a и b находятся в диапазоне от 0,00 до 99,99, поэтомуc не может иметь значения больше 99,99 * 99,99
2) a, b и c не должны иметь более 2 десятичных прецессий, например, a = 99.123 будет недействительным.
3)Вы можете использовать округление, если вам нужно до десятичного знака.Round (a * b, 2) == c.
4) допустимы такие комбинации, как (1, 3), (3, 1), (2, 2), (1, 4), (0,5, 8) или даже (0,25, 16);это не имеет значения, пока с будет произведением а и б.
Как бы вы завершили внедрение ConvertCtoAB?
Большое спасибо,