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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
HelloWorld程序显示的整个运行过程
1.用户告诉操作系统执行HelloWorld程序(通过键盘输入等)2操作系统:找到helloworld程序的相关信息,检查其类型是否是可执行文件;并通过程序首部信息,确定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址。3操作系统:创建一个新进程,将HelloWorld可执行文件映射到该进程结构,表示由该进程执行helloworld程序。4操作系统:为helloworld程序设置cpu上下文...
把调试信息打印到console的方法
如果在GUI的应用程序中要打印调试信息的话可以使用TRACE宏,如果要想把调试信息打印到控制台的窗口里,在vc里有这样的方法: AllocConsole(); 这样就出现一个控制台窗口.然后就可以输出了: HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE); TCHAR psz[] = _T("test..."); UINT  cb = ls
Python学习笔记(0)
Python学习笔记(0) - ﹏猴子请来的救兵 - 博客园 ﹏猴子请来的救兵 博客园 首页 新随笔 联系 订阅管理 随笔- 14  文章- 0  评论- 0  Python学习笔记(0)
从Hello World 程序开始
欢迎来到ncurses 的世界。在我们踏上学习ncurses 的路途之前,让我们先写一个小程序, 来了解一下应用ncurses 库所编写程序的结构。 编译包含NCURSES 库函数的程序 如果要调用ncurses 库中的函数,你必须在代码中加载ncurses.h 文件,就是要在C 或C++ 程序开头添加“#include ”,然后在链接时标记-lncurses参数。如果ncurses
sprintf用法——把结果打印到打印字符串而不是终端
sprintf用法简介 选自《CSDN 社区电子杂志——C/C++杂志》 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,定义如下:
编写一个程序,从标准输入读取几行输入并把他们打印在标准输出上,它同时应该计算checksum值,并写在字符后面
checksum(检验和)用一个singed char类型的变量进行计算,它初始值为-1。从标准输入读取时,它的值就被加到checksum中。 #include int main() { int ch; char checksum = -1; while((ch = getchar()) != EOF) { putchar(ch); checksum += ch; } p
printk信息打印到指定文件 终端 网络
有的时候调试内核程序,经常要将信息打印到其他地方如指定文件或终端还有网络,  网络的话dreanice版主写过个netconsole我这里就不说了... 打印到文件:     #include #include #include #include #include #include #include #include
Android 在屏幕上打印log
代码链接
C#实现Cad打印到Pdf
C#实现Cad打印到Pdf,也可到png等
加快PDF打印输出到OneNote的速度
在使用OneNote将PDF文件输出到笔记中时,如果PDF页码较多就会减慢打印输出的速度。在我的电脑中,打印输出152页的文档需要35分钟!这种速度无疑令人失去使用该功能的欲望。今天,无意中我发现了如何使用加快打印输出速度的方法。          在OneNote中,依次打开文件→选项→高级→打印输出。取消“在多个页面上插入长打印输出”左边的勾选。此时如果打印输出时就会询问在