Как рассчитать остаток при учете сотых долей для валютных операций

Мне нужно разделить сумму в долларах США на количество месяцев для графика платежей, и я хочу иметь возможность получить остаток от деления, если деньги не делятся четко. Обычно я бы просто использовал операцию модуля, чтобы получить остаток, но мне также нужно учитывать сотые доли, чего модуль не делает. $500.00, разделенное на 8 месяцев, является совершенно допустимой суммой в $62.50, но операция мода вернет $4.00.

В настоящее время я использую тип decimal для своих валютных операций, есть ли лучший способ сделать то, что я делаю, или я должен просто пойти и написать функцию, которая делает это?


person Fam    schedule 16.04.2016    source источник
comment
Покажите свои расчеты — да, decimal — это идеальный тип для денежных расчетов.   -  person D Stanley    schedule 16.04.2016
comment
((значение * 100) по модулю 8) / 100?   -  person Ian Mercer    schedule 16.04.2016
comment
Добавьте к своему вопросу код, а не комментарии, а value – это decimal?   -  person D Stanley    schedule 16.04.2016
comment
Также в C# нет оператора mod, в C# это %. Покажите ваш точный код C# вместе с соответствующими объявлениями.   -  person D Stanley    schedule 16.04.2016
comment
@IanMercer, я не могу поверить, что это было так просто, как умножить на сто перед операцией мода, а затем снова разделить на сто, чтобы получить истинный результат. Ваше решение отлично сработало для меня. Если хотите, опубликуйте это как ответ, и я приму его.   -  person Fam    schedule 16.04.2016


Ответы (1)


Вы можете рассчитать остаток в центах, умножив вверх, затем применив мод, а затем разделив обратно:

((value * 100) % 8 ) / 100 
person Ian Mercer    schedule 16.04.2016