Это делается с помощью BigDecimal
import java.math.BigDecimal;
import java.math.RoundingMode;
public class DecimalTest {
/**
* @param args
*/
public static void main(String[] args) {
double operation = 890.0/1440.0;
BigDecimal big = new BigDecimal(operation);
big = big.setScale(4, RoundingMode.HALF_UP);
double d2 = big.doubleValue();
System.out.println(String.format("operation : %s", operation));
System.out.println(String.format("scaled : %s", d2));
}
}
Выход
операции: 0,6180555555555556 масштабируется: 0,6181
где вы хотите его «сохранить»? – Bozho
Операции с числами с плавающей запятой (float или double) не дают точного результата, что делает их непригодными для любого финансового расчета, который требует точного результата, а не приближения. Вместо этого используйте BigDecimal. –