2011-02-26 16 views
5

Hola, tengo una variable temporal BigDecimal, quiero que sea reutilizable en una función. ¿Hay alguna manera de restablecer esta variable a cero si el valor es mayor que cero?Cómo restablecer BigDecimal a cero

THanks @!

+2

Se podría aprender la respuesta a esta con bastante rapidez mediante la lectura de [la documentación de BigDecimal] (http://download.oracle.com/javase/6/docs/api/ java/math/BigDecimal.html) (la * primera palabra * de la cual es "inmutable"). Una de las mejores cosas de Java es su enorme y [completamente documentada] (http://download.oracle.com/javase/6/docs/api/) bibliotecas estándar. – rlibby

Respuesta

5

BigDecimal es inmutable, y los casos no se puede modificar. Sin embargo, usted podría hacer algo como:

public void myMethod(BigDecimal b) { 
    BigDecimal zero = BigDecimal.ZERO; 
    if (b.compareTo(zero) > 0) 
     b = zero; 
    // Do stuff with b here 
} 
+1

Es mejor usar 'BigDecimal.ZERO'. –

+0

Gracias. Cambiado :) –

8

No puede cambiar el valor. BigDecimals son inmutables. Necesitas crear uno nuevo.

+0

Es mejor usar 'BigDecimal.ZERO' en lugar de crear uno nuevo. –

+0

@Stephen, cierto, pero yo estaba diciendo "crear uno nuevo" en lugar de reutilizar uno en una función. – jzd

Cuestiones relacionadas