2011-07-06 8 views
8

Sé que puede sumar una matriz de NSNumbers utilizando la ruta de acceso @ sum.self, pero ¿eso también funciona con NSDecimalNumbers? ¿El resultado será preciso?Sum NSArray of NSDecimalNumbers

EDITAR: Para ser más específico, aquí está el código que sé que funciona con NSNumber.

NSNumber *sum = [numArray valueForKeyPath:@"@sum.self"]; 

Respuesta

12

NSDecimalNumber es una subclase de NSNumber, por lo que heredarán esta capacidad.

Además, yo recomendaría el uso de uno de estos:

NSDecimalNumber *sum = [numArray valueForKeyPath:@"@sum.floatValue"]; 

float sum = [[numArray valueforKeyPath:@"@sum.floatValue"] floatValue]; 
+4

No usar 'floatValue' niega la precisión de' NSDecimalNumber'? – Austin

+0

Sí, lo hace. Esta es una muy mala práctica. –