NSString ist @"16.240"
es double ist 16.239999999999998
Warum unterscheidet sich der DoubleValue von NSString von der ursprünglichen Zeichenfolge?
Was passiert hinter den Kulissen?
NSString ist @"16.240"
es double ist 16.239999999999998
Warum unterscheidet sich der DoubleValue von NSString von der ursprünglichen Zeichenfolge?
Was passiert hinter den Kulissen?
Wenn es Wert für Preis (oder Geld im Allgemeinen) ist, besser zu verwenden NSDecimalNumber
, weil es jeden Teil von float-Wert speichern soll, wie es ist.
NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithString:@"16.240"];
NSLog(price); //16.24
http://rypress.com/tutorials/objective-c/data-types/nsdecimalnumber
können Sie zeigen, ur-Code –
der Code einfach ist, nur 'self.price = text.doubleValue' in textDidChange Verfahren. @ Anbu.Karthik – Gon
Wenn Sie von Double in String konvertiert werden, ist es rund um den Wert –