I am making a iphone calculator app and I ran into this issue which I cannot seem to find a solution for.
When user enters numbers I convert them into double and then I convert that double result into a string. I am using %g to get whole numbers. The problem I have is for large numbers it shows a "E" exponent. This is what I have tried so far
NSLog(@"Num1: %g", 5000.0*8.0);
NSLog(@"Num2: %g", 500000.0*85.0);
NSLog(@"Num3: %f", 500000.0*85.0);
NSLog(@"Num4: %.4f", 5000.0*8.0);
NSLog(@"Num5: %.4f", 500000.0*85.0);
NSLog(@"Num6: %g", 5000000.0/3.7);
NSLog(@"Num7: %.4f", 5000000.0/3.7);
This is what I get in terms of results
2013-10-20 14:09:34.261 ECalc[9947:a0b] Num1: 40000
2013-10-20 14:09:34.262 ECalc[9947:a0b] Num2: 4.25e+07
2013-10-20 14:09:34.263 ECalc[9947:a0b] Num3: 42500000.000000
2013-10-20 14:09:34.264 ECalc[9947:a0b] Num4: 40000.0000
2013-10-20 14:09:34.264 ECalc[9947:a0b] Num5: 42500000.0000
2013-10-20 14:09:34.265 ECalc[9947:a0b] Num6: 1.35135e+06
2013-10-20 14:09:34.266 ECalc[9947:a0b] Num7: 1351351.3514
Just like a normal calculator I would like to show whole numbers when numbers are multiplied normally. i.e.
Num2 = 42500000
Num7 = 1351351.3514
So here's my question, is there a string format specifier that I can use that will fit both num2 and num7 results? Do I need to use a lot of logic to see if the numbers after dot are zero then truncate them otherwise keep them and use %.4f?