为了账号安全,请及时绑定邮箱和手机立即绑定

在Objective-C中四舍五入数字

在Objective-C中四舍五入数字

胡子哥哥 2019-10-18 10:12:03
我正在尝试对数字进行舍入并转换为字符串,以增强Objective-C程序的输出。我有一个浮点值,我想四舍五入到最接近的.5,然后用它来设置标签上的文本。例如:1.4将是以下字符串:1.51.2将是以下字符串:10.2将是一个字符串:0我花了一段时间在Google上寻找答案,但是作为Objective-C的菜鸟,我不确定要搜索什么!因此,我非常感谢朝着正确方向的指针!谢谢,Ash
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

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


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

上面的代码适用于我抛出的测试用例,但是如果有人知道一种更好的方法,我很想听听它!


查看完整回答
反对 回复 2019-10-18
?
动漫人物

TA贡献1815条经验 获得超10个赞

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


查看完整回答
反对 回复 2019-10-18
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

一种简单的方法:


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


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 451 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信