Apakah ada cara sederhana di c# untuk membulatkan desimal ke kuarter terdekat yaitu x.0, x.25, x.50 x.75 misalnya 0,21 akan dibulatkan menjadi 0,25, 5,03 akan dibulatkan menjadi 5,0
Terima kasih sebelumnya atas bantuan apa pun.
Apakah ada cara sederhana di c# untuk membulatkan desimal ke kuarter terdekat yaitu x.0, x.25, x.50 x.75 misalnya 0,21 akan dibulatkan menjadi 0,25, 5,03 akan dibulatkan menjadi 5,0
Terima kasih sebelumnya atas bantuan apa pun.
Alternatifnya, Anda dapat menggunakan UltimateRoundingFunction yang diberikan di blog ini: http://rajputyh.blogspot.in/2014/09/the-ultimate-rounding-function.html
//amountToRound => input amount //nearestOf => .25 if round to quater, 0.01 for rounding to 1 cent, 1 for rounding to $1 //fairness => btween 0 to 0.9999999___. // 0 means floor and 0.99999... means ceiling. But for ceiling, I would recommend, Math.Ceiling // 0.5 = Standard Rounding function. It will round up the border case. i.e. 1.5 to 2 and not 1. // 0.4999999... non-standard rounding function. Where border case is rounded down. i.e. 1.5 to 1 and not 2. // 0.75 means first 75% values will be rounded down, rest 25% value will be rounded up. decimal UltimateRoundingFunction(decimal amountToRound, decimal nearstOf, decimal fairness) { return Math.Floor(amountToRound / nearstOf + fairness) * nearstOf; }
Hubungi di bawah untuk pembulatan standar. yaitu 1,125 akan dibulatkan menjadi 1,25
UltimateRoundingFunction(amountToRound, 0.25m, 0.5m);
Hubungi di bawah untuk membulatkan nilai batas ke bawah. yaitu 1,125 akan dibulatkan menjadi 1,00
UltimateRoundingFunction(amountToRound, 0.25m, 0.4999999999999999m);
Apa yang disebut "Pembulatan Bankir" tidak mungkin dilakukan dengan UltimateRoundingFunction, Anda harus menggunakan jawaban paxdiablo untuk dukungan itu :)