我有这段代码:
NSString *hString = [NSString stringWithFormat:@"%d", (h * 100)];
HField.text = hString;
H是0.721。
HField.text现在读取:
1073741824
为什么这不给我72?
答案 0 :(得分:5)
阿。问题是h
似乎是double
或float
。试试这个:
HField.text = [NSString stringWithFormat: @"%f", (h * 100.0)];
这应该有效。您必须将%f
用于浮点数,将%d
用于整数。
HField.text = [NSString stringWithFormat: @"%d", (NSInteger) round(h * 100.0)];
Round将浮点数舍入为整数。您也可以分别使用ceil()
或floor()
向上或向下舍入。 (NSInteger)
强制转换用于确保将其转换为整数。
答案 1 :(得分:3)
可能是因为如果h
是0.721,那么它是float
或double
,这意味着该产品是浮点数或双精度数,这意味着您应该将其转换为{ {1}}首先使用int
。
答案 2 :(得分:2)
%d
你指的是一个整数托盘%f
:
NSString *hString = [NSString stringWithFormat:@"%f", (h * 100)];