将NSStrings一起添加舍入问题

时间:2013-01-08 02:47:09

标签: ios objective-c xcode nsstring

我有一个简单的应用程序,我试图将两个NSStrings一起添加并在标签中生成值。

NSString *one= @"0.00";
NSString *two= @"20.15";

NSString *total = [[NSString alloc]  initWithFormat:@"%d",[one integerValue] + [two integerValue]];

label.text = [NSString stringWithFormat:@"%@",total];

这个工作正常,但我希望它考虑到小数后面的数字。输出变为20而不是20.15。

3 个答案:

答案 0 :(得分:2)

使用浮点数而不是整数

NSString *total = [[NSString alloc]  initWithFormat:@"%f",[one floatValue] + [two floatValue]];

如果您想指定2个小数位,请将%f替换为%.2f

注意,[two integerValue]在您的示例中评估为20。从那时起你将失去小数精度。

答案 1 :(得分:2)

找到floatValue的{​​{1}}而不是NSString。整数是整数,因此忽略小数点后的任何内容。

intValue

答案 2 :(得分:1)

整数没有小数。

尝试:

NSString *total = [NSString stringWithFormat:@"%f", [one floatValue] + [two floatValue]];