Here is situation:
Input:
var a = 1.2567789m;
var b = 1.898436216m;
var c = 1.79863m;
var aD = 2;
var bD = 3;
var cD = 1;
Result:
var aR = 1.25m;
var bR = 1.898m;
var cR = 1.7m;
So input is different decimal numbers with different amounts of decimal places and number of need decimal numbers. I need to round down input numbers by the number of decimal places, which can be different every time. I wrote a method for this which is working fine, but I wonder if there is a better solution :
static void Main(string[] args)
{
var a = 1.2567789m;
var b = 1.898436216m;
var c = 1.79863m;
var aD = 2;
var bD = 3;
var cD = 1;
Console.WriteLine(RoundDown(a, aD));
Console.WriteLine(RoundDown(b, bD));
Console.WriteLine(RoundDown(c, cD));
Console.ReadLine();
}
private static decimal RoundDown(decimal number, int decimals)
{
switch (decimals)
{
case 1:
{
return (Math.Truncate(number * 10)) / 10;
}
case 2:
{
return Math.Truncate(number * 100) / 100;
}
case 3:
{
return Math.Truncate(number * 1000) / 1000;
}
case 4:
{
return Math.Truncate(number * 10000) / 10000;
}
case 5:
{
return Math.Truncate(number * 100000) / 100000;
}
case 6:
{
return Math.Truncate(number * 1000000) / 1000000;
}
case 7:
{
return (Math.Truncate(number * 10000000)) / 10000000;
}
case 8:
{
return Math.Truncate(number * 100000000) / 100000000;
}
case 9:
{
return Math.Truncate(number * 1000000000) / 1000000000;
}
case 10:
{
return Math.Truncate(number * 10000000000) / 10000000000;
}
default: return 0;
}
}
Thank you very much in advance