如何在客观c中防止双重科学记数法?

时间:2012-09-16 19:27:11

标签: objective-c

从双变量设置UITextfield文本值时,如何防止科学记数法? 我尝试用“%f”格式化它,但它显示-0为-0.00000。使用“%g”格式化使其显示指数。

2 个答案:

答案 0 :(得分:3)

%.0f

表示浮点数为0的小数位数。

修改

由于看起来你仍然需要一些精确度,你应该使用NSNumberFormatter实例,它更加灵活。

您可以使用-setMinimumFractionDigits:-setMaximumFractionDigits:,因此归零0,但您仍然可以拥有精确度:

NSNumberFormatter * fmt;

fmt = [ [ NSNumberFormatter new ] autorelease ];

[ fmt setMinimumFractionDigits: 0 ];
[ fmt setMaximumFractionDigits: 2 ];
[ fmt setMinimumIntegerDigits:  1 ];

NSLog( @"%@", [ fmt stringFromNumber: [ NSNumber numberWithFloat: ( float )0 ] ] );
NSLog( @"%@", [ fmt stringFromNumber: [ NSNumber numberWithFloat: ( float )0.42 ] ] );

答案 1 :(得分:0)

您可以在格式字符串中限制小数位数:

%.0f

将四舍五入到整数,

%.1f

将舍入为1位小数等,分别打印-0为-0-0.0