2 daffodilgirl DaffodilGirl 于 2013.05.08 15:33 提问

无法实现计算,打印到label上

应用中点击计算按钮时的代码:

 float sqft = ([textfield1.text floatValue]);
float thick= ([textfield2.text floatValue]);
float cos = ([textfield3.text floatValue]);
float eff = ([textfield4.text floatValue]);

float num = ((thick*.5)*sqft)/eff;
float cost = (num*cos);
float costft = (cost/sqft);

label1.text = [NSString stringWithFormat:@"%2.f",num];
label2.text = [NSString stringWithFormat:@"%2.f",cost];
label3.text = [NSString stringWithFormat:@"%2.f",costft];

但是label只返回0?我设置了标签为字符串。但是结果是一样的。

2个回答

Chengzi_963
Chengzi_963   2013.05.08 16:04
已采纳

问题是%2.f。

%2.f返回的答案是2 数字的格式,如果结果小于或等于0.5。那么答案就会得0

float sqft = ([textfield1.text floatValue]);
float thick= ([textfield2.text floatValue]);
float cos = ([textfield3.text floatValue]);
float eff = ([textfield4.text floatValue]);

float num = ((thick*.5)*sqft)/eff;
float cost = (num*cos);
float costft = (cost/sqft);

label1.text = [NSString stringWithFormat:@"%2f",num];
label2.text = [NSString stringWithFormat:@"%2f",cost];
label3.text = [NSString stringWithFormat:@"%2f",costft];
KindAzrael
KindAzrael   2013.05.08 22:24

%2.f 格式表示 小数位为0位(<=0.5舍掉反之入1) 整数位至少2位 不够的用前导空白填充
所以只要你答案小于等于0.5 都变成了0
如果你想要的是保留2位小数 应该用%.2f 即 [NSString stringWithFormat:@"%.2f",num];

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!