Да, NSDecimalNumber
- это основание-10.
Преобразование в тип с плавающей запятой может привести к потере точности.В их случае, поскольку в примере только что использовались NSLog
просто NSLog
NSDecimalNumber
:
NSDecimalNumber *minVal = [NSDecimalNumber decimalNumberWithString:@"0.0"];
NSDecimalNumber *maxVal = [NSDecimalNumber decimalNumberWithString:@"111.1"];
NSDecimalNumber *valRange = [maxVal decimalNumberBySubtracting:minVal];
CGFloat floatRange = [valRange floatValue];
NSLog(@"floatRange: %f", floatRange);
NSLog(@"valRange: %@", valRange);
NSLog выход:
floatRange: 111.099998
valRange: 111.1