fork download
  1. using static System.Console;
  2. using System.Collections.Generic;
  3.  
  4. public class Program {
  5. public static void Main() {
  6. foreach (var item in CalculaPercentuais(377.17M, new decimal[] { 33.0M, 33.0M, 34.0M })) WriteLine(item);
  7. }
  8. public static IEnumerable<decimal> CalculaPercentuais(decimal valor, IEnumerable<decimal> percentuais) {
  9. //decidi não validar se a soma dos percentuais dá 100 porque pode ser que isso não seja obrigatório
  10. var valores = new List<decimal>();
  11. foreach (var percentual in percentuais) valores.Add(decimal.Round(valor / 100.0M * percentual, 2));
  12. var soma = 0.0M;
  13. for (var i = 0; i < valores.Count - 1; i++) soma += valores[i];
  14. valores[valores.Count - 1] = valor - soma;
  15. return valores;
  16. }
  17. }
  18.  
  19. //https://pt.stackoverflow.com/q/398984/101
Success #stdin #stdout 0.01s 131520KB
stdin
Standard input is empty
stdout
124.47
124.47
128.23