0

I have a problem with converting NSString to NSDecimalNumber.

NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: --------------------------------------------------------------------ㅍ");
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0001"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0002"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0003"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0004"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0005"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0006"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0007"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0008"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.0009"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.001"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.002"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.003"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.004"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.005"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.006"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.007"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.008"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: %@",[NSDecimalNumber decimalNumberWithString:@"0.009"]);
NSLog(@"calcuMax_test - calculateMaxForCross feeRateDecimal: --------------------------------------------------------------------");

The result of the above code is

calcuMax_test - calculateMaxForCross feeRateDecimal: --------------------------------------------------------------------
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0001
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0002
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0003
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0004
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0005
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0006000000000000001
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0006999999999999999
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0008
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.0009
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.001
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.002
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.003
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.004
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.005
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.006
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.006999999999999999
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.008
calcuMax_test - calculateMaxForCross feeRateDecimal: 0.008999999999999999
calcuMax_test - calculateMaxForCross feeRateDecimal: --------------------------------------------------------------------

Why the heck is it not converting correctly? How exactly do I do the conversion?

won
  • 73
  • 7
  • 1
    Does this answer your question? [Is floating point math broken?](https://stackoverflow.com/questions/588004/is-floating-point-math-broken) – Renat Jul 06 '23 at 12:46
  • What OS version are you using? It works fine for me on iOS 16.4 simulator. You might want to use the method that also takes a locale because all those numbers can parse to 0 if the users' locale has a comma instead of a dot as decimal separator. – Cyberbeni Jul 06 '23 at 16:46

0 Answers0