当前位置:  开发笔记 > IOS > 正文

Objective-C中的舍入数字

如何解决《Objective-C中的舍入数字》经验,为你挑选了7个好方法。

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

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

例如:

1.4将是一串:1.5

1.2将是一串:1

0.2将是一个字符串:0

我花了一段时间在Google上寻找答案但是,作为Objective-C的菜鸟,我不知道该搜索什么!所以,我真的很感激指向正确的方向!

谢谢,阿什



1> Ash..:

感谢大家的指点,我设法提出了一个解决方案:

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];

以上是我投入的测试用例,但如果有人知道更好的方法,我会有兴趣听到它!


如果将其输出到文本字段,则只需将格式化程序附加到字段即可.

2> Durai Amutha..:
float floatVal = 1.23456;

四舍五入

int roundedVal = lroundf(floatVal); 

NSLog(@"%d",roundedVal);

围捕

int roundedUpVal = ceil(floatVal); 

NSLog(@"%d",roundedUpVal);

四舍五入

int roundedDownVal = floor(floatVal);

NSLog(@"%d",roundedDownVal);



3> keremk..:
NSString *numberString = [NSString stringWithFormat:@"%f", round(2.0f * number) / 2.0f];



4> 小智..:

使用lroundf()将float舍入为整数,然后将整数转换为字符串.



5> 小智..:
NSString *numberString = [NSString stringWithFormat:@"%d",lroundf(number)];



6> hbw..:

我建议使用NSNumberFormatter.



7> Lal Krishna..:

一个简单的方法:

float theFloat = 1.23456;
int rounded = roundf(theFloat); NSLog(@"%d",rounded);
int roundedUp = ceil(theFloat); NSLog(@"%d",roundedUp);
int roundedDown = floor(theFloat); NSLog(@"%d",roundedDown);
// Note: int can be replaced by float

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有