问题描述
- 无法实现计算,打印到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.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];
解决方案二:
%2.f 格式表示 小数位为0位(<=0.5舍掉反之入1) 整数位至少2位 不够的用前导空白填充
所以只要你答案小于等于0.5 都变成了0
如果你想要的是保留2位小数 应该用%.2f 即 [NSString stringWithFormat:@"%.2f",num];
时间: 2024-09-15 05:01:11