Кто-нибудь знает, как я могу получить строку формата для использования банковского округления ? Я использовал "{0:c}", но это не округляет так же, как округление банкиров. Метод Math.Round()
выполняет округление банкиров. Мне просто нужно иметь возможность дублировать, как он округляется, используя строку формата.
Примечание: первоначальный вопрос вводил в заблуждение, и ответы, в которых упоминается регулярное выражение, вытекают из него.
0.5
.0.5
находится ровно посередине между 0 и 1, но не ближе к ним. Решение, что вы всегда будете округлять в большую сторону, приводит к предвзятости (например, налог, который вы платите, не должен всегда округляться в большую сторону — это просто несправедливо). Банковское округление настроено таким образом, что в половине случаев округления в большую сторону и в половине случаев в меньшую сторону это выравнивает ситуацию. Алгоритм всегда округляется до четной цифры. например:0.5 -> 0
,1.5 -> 2
,2.5 -> 2
,3.5 -> 4
,4.5 -> 4
- person Ian Boyd   schedule 09.09.2011