A documentação está um pouco incompleto quanto à mágica do valor
6 e quando aplicar o max função, mas aqui está uma tabela de minhas descobertas, com base nessa documentação. Como diz, as fórmulas para a divisão são:
E, como você mesmo destaca, temos então a nota de rodapé:
Então, aqui está o que eu produzi na minha planilha:
p1 s1 p2 s2 prInit srInit prOver prAdjusted srAdjusted
38 16 38 16 93 55 55 38 6
28 16 28 16 73 45 35 38 10
29 16 29 16 75 46 37 38 9
Então, estou usando
pr e sr para indicar a precisão e escala do resultado. O prInit e srInit fórmulas são exatamente as forumlas da documentação. Como podemos ver, em todos os 3 casos, a precisão do resultado é muito maior que 38 e assim se aplica a nota de rodapé. prOver é apenas max(0,prInit - 38) - quanto temos que ajustar a precisão se a nota de rodapé se aplicar. prAjustado é apenas prInit - prOver . Podemos ver nos três casos que a precisão final do resultado é 38 . Se eu aplicar o mesmo fator de ajuste para as escalas, então eu obteria resultados de
0 , 10 e 9 . Mas podemos ver que seu resultado para o (38,16) caso tem uma escala de 6 . Então eu acredito que é onde o max(6,... parte da documentação realmente se aplica. Então, minha fórmula final para srAdjusted é max(6,srInit-prOver) e agora meu Ajustado final os valores parecem corresponder aos seus resultados. E, claro, se consultarmos a documentação para
decimal
, podemos ver que o padrão precisão e escala, se você não especificá-los, são (18,0) , então aqui está a linha para quando você não especificou precisão e escala:p1 s1 p2 s2 prInit srInit prOver prAdjusted srAdjusted
18 0 18 0 37 19 0 37 19