我试图在Objective-C程序中进行一些数字舍入和字符串转换,以增强输出.

我有一个浮点值,我想四舍五入到最接近的.5,然后用它来设置标签上的文本.

例如:

1.4将是一系列:1.5

1.2将是一系列:1

0.2将是一个字符串:0

我花了一段时间在谷歌上寻找答案,但作为一个有Objective-C的noob,我不知道该搜索什么!所以,我真的很感激能给我一个指向正确方向的指针!

谢谢

推荐答案

谢谢大家的指点,我已经想出了一个解决方案:

float roundedValue = round(2.0f * number) / 2.0f;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:1];
[formatter setRoundingMode: NSNumberFormatterRoundDown];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:roundedValue]];
[formatter release];

以上内容适用于我提交的测试用例,但如果有人知道更好的方法,我很想听听!

Objective-c相关问答推荐

将 NSInteger 转换为 NSIndexpath

TWTweetComposeViewController 在 IOS6 中已弃用

防止同时多个按钮

Xcode 是否支持区域?

使用 NSArray 初始化对象数组

NSFileManager 唯一的文件名

检测到与加载的库不匹配的 UUID

.m 文件中的空@interface 声明是做什么用的?

在 Objective-C/cocoa 中创建文件夹/目录

iOS 7 - 键盘动画

xcode storyboard Container View - 如何访问视图控制器

UITabBar 未在 ios 7 中显示所选项目图像

从 UITabBarController 在当前上下文中呈现模态视图控制器后出现黑屏

在 switch 语句中使用 NSString

UITableViewCell 点击展开

Objective-C中的继承和类别有什么区别

如何本地化 iOS 故事板

如何在 Cocoa 中获取当前日期

如何判断 WkWebView 是否在 Objective-C 中完成加载?

捕捉固定步数的 UISlider(如 iOS 7 设置应用程序中的文本大小)