如何将CGFloat的转换为无符号整数

我试图让使用CGFloat的,像这样的字符串。

helpMessage = [NSString stringWithFormat:@"The unsigned integer value is %i", (unsigned int)myCGFloat];

这个不希望的工作。 鉴于-2我得到0的字符串中CGFloat的价值。

如果我使用...

helpMessage = [NSString stringWithFormat:@"The unsigned integer value is %i", (int)myCGFloat];

我得-2。 这是越来越近了。 所以我想我可以用@u作为格式说明,但我得到4294967294。

我在做什么错。

在此先感谢您的帮助。 这应该是轻松的一年。

约翰·

--------------解决方案-------------

你得到4294967294因为你的价值转换为后unsigned int ,没有一点可以用来代表的消极-2所以价值“下溢”,由2而不是,可以这么说:

0
4294967295 (-1)
4294967294 (-2)

你应该格式化为一个有符号整数%i如果你想显示负值。 有符号的32位整数的范围是-21474836482147483647而一个无符号的32位整数的范围是04294967295

所以,你想投-2到一个unsigned int? unsigned int类型的不能低于0。因此,它是要代表不正确。

好。 谢谢你的答案我想它了...

helpMessage = [NSString stringWithFormat:@"The abasolute value is %i", abs((int)myCGFloat]);

我直接在CGFloat的尝试腹肌,但我看到现在ABS期待一个int值。 我想一个unsigned int是同样的事,作为一个绝对值。 感谢设置我直。

约翰·

分类:iphone 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.448 (s). 10 q(s)