Il tuo lavoro è sbagliato
Precision: p1 - s1 + s2 + max(6, s1 + p2 + 1)
Scale: max(6, s1 + p2 + 1)
Dà
Precision: 38 - 2 + 2 + max(6, 2 + 12 + 1) = 53
Scale: max(6, 2 + 12 + 1) = 15
Che è maggiore di 38, quindi stai ricevendo un troncamento come trattato qui