Как рассчитать сумму из цены + налог?
Я пытаюсь рассчитать американский налог. Магазин во Флориде вызывает у меня головную боль.
Существует государственный налог в размере 6% и городской налог в размере 1%, но только на первые 5000 долларов
Легко вычислить налог от цены:
var total = taxRates.sum(t=>t.rate * Math.Min(t.MaxAmount??Price, Price))
Это работает со всеми налоговыми ставками и типами. Британский налог, например. в списке TaxRates будет только 1 налоговая ставка, а MaxAmount будет равен нулю.
Проблема в нем. У меня есть сумма, включающая налог, и я должен придумать единый для всех метод расчета цены за вычетом налога.
Есть идеи?
Что я уже пробовал:
В настоящее время я разрабатываю пороговое значение ставки и повторяю ее:
Рассмотрим следующий пример для Флориды:
Max Amount Rate 5000 1% null 6% null 1% (a fake locality tax for this demo)
первые 5000 долларов будут облагаться налогом в размере 8% от общей суммы. Я определяю сумму, которую облагает налогом каждый "уровень", и создаю налоговые диапазоны таким образом:
Max Amount Rate 5000 8% null 7% (rates with the same maxamount are aggregates)
Теперь я могу сказать порог группы:
Rate Threshold Before Tax 8% 5400 5000 7% decimal.MaxValue null
так что теперь я могу повторить этот список, чтобы найти фактическую сумму налога.
Допустим, у нас есть 2700 долларов. Это не выше первого налогового диапазона, так что все это облагается налогом в размере 8%. 2700 / 1.08 = $2500
10000: это больше 5400, поэтому 5400 облагается налогом в размере 8%:
4600: это в пределах следующей полосы, так что все облагается налогом в 7%
= 5000 + (4600 / 1.07)
Это работает, но очень неуклюже.
Richard MacCutchan
Как 2700 плюс 8% налог равняется 2500? Точно так же ваш последний расчет не выглядит правильным.
Andy Lanng
первый:
2500 + 8% = 2700
так
2700 / 1.08 = 2500, что я и написал
второй :
таким образом, 5400 из общего числа были 5000, взимаемыми под 8%. Это означает, что 5400 из 10000 были учтены.
это выходит 4600, которая должна быть учтена на следующий налоговый кронштейн
Richard MacCutchan
Я думал, что вы начинаете с чистых сумм для расчета налога.
Andy Lanng
начиная с цены + налог. Мне нужно узнать цену. Если я знаю налог (то есть 8%), то для получения цены мне нужно только разделить ее на 1,08.
Проблема в том, что когда существует ограничение на то, к какой сумме применяется налог в размере 1%, общий налоговый % будет где-то между 7 и 8 %
Richard MacCutchan
По моему опыту покупок в США они всегда показывают чистую цену и добавляют налог в кассу. А во Флориде все по-другому?
Andy Lanng
Флорида ничем не отличается. Это мой клиент.
Richard MacCutchan
Я всегда думал, что без клиентов наша работа была бы намного проще.
Andy Lanng
^_^
MadMyche
Это для физического магазина или там будет задействована доставка?
Andy Lanng
К счастью, никакой доставки ^_^