Domanda numero 1: perchè trasformi in String ciò che è un numero?
Domanda numero 2: perchè non lasci che venga restituito un double e, utilizzando la formattazione della casella di testo, la formatti col numero di decimali che ti serve?
Ad esempio, se stai cercando di usare una TextField che deve visualizzare il valore di quell'espressione e vuoi che il valore venga visualizzato usando 3 cifre decimali al massimo:
<textField pattern="###0.000;(###0.000-)">
<reportElement x="..." y="..." width="..." height="..." uuid="..."/>
<textFieldExpression>
<![CDATA[
$F{tipo}.equals("A") ? $V{totaleIvaIneducibile}.doubleValue()+$V{totaleIva1}.doubleValue() : $V{totaleIva1}.doubleValue()]
]>
</textFieldExpression>
</textField>
Ciao.