我正在制作一个 iphone 计算器应用程序,但遇到了这个问题,我似乎找不到解决方案。
当用户输入数字时,我将它们转换为双精度,然后将该双精度结果转换为字符串。我正在使用 %g 来获取整数。我遇到的问题是对于大量数字,它显示一个“E”指数。这是我迄今为止尝试过的
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);
这就是我得到的结果
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
就像普通计算器一样,当数字正常相乘时,我想显示整数。IE
Num2 = 42500000
Num7 = 1351351.3514
所以这是我的问题,是否有一个我可以使用的字符串格式说明符同时适合 num2 和 num7 结果?我是否需要使用大量逻辑来查看点后的数字是否为零然后截断它们,否则保留它们并使用 %.4f?