首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将iOS4的浮点数乘以xcode中的整数呢?

如何将iOS4的浮点数乘以xcode中的整数呢?
EN

Stack Overflow用户
提问于 2011-10-11 00:38:18
回答 2查看 29.6K关注 0票数 3

可能重复:

Objective-c: How to round off Float values?

我知道是关于NSNumberformatter类的,请给我样例代码。

EN

回答 2

Stack Overflow用户

发布于 2011-10-11 00:39:53

由于ints不能存储浮点数,浮点数的十进制部分将被截断,您将得到整数:

代码语言:javascript
运行
复制
float x = 3.14159;
int y = (int)x;

这是因为int只能存储整数,所以它只存储x的整数部分。

另见gnu C Library Rounding Functions

代码语言:javascript
运行
复制
 — Function: double ceil (double x)
 — Function: float ceilf (float x)
 — Function: long double ceill (long double x)
 — Function: double floor (double x)
 — Function: float floorf (float x)
 — Function: long double floorl (long double x)
 — Function: double trunc (double x)
 — Function: float truncf (float x)
 — Function: long double truncl (long double x)
 — Function: double rint (double x)
 — Function: float rintf (float x)
 — Function: long double rintl (long double x)
 — Function: double nearbyint (double x)
 — Function: float nearbyintf (float x)
 — Function: long double nearbyintl (long double x)
 — Function: double round (double x)
 — Function: float roundf (float x)
 — Function: long double roundl (long double x)
 — Function: long int lrint (double x)
 — Function: long int lrintf (float x)
 — Function: long int lrintl (long double x)
 — Function: long long int llrint (double x)
 — Function: long long int llrintf (float x)
 — Function: long long int llrintl (long double x)
 — Function: long int lround (double x)
 — Function: long int lroundf (float x)
 — Function: long int lroundl (long double x)
 — Function: long long int llround (double x)
 — Function: long long int llroundf (float x)
 — Function: long long int llroundl (long double x)
 — Function: double modf (double value, double *integer-part)
 — Function: float modff (float value, float *integer-part)
 — Function: long double modfl (long double value, long double *integer-part)
票数 20
EN

Stack Overflow用户

发布于 2011-10-11 00:51:30

但是3.999也等于3,如果你只是把它转换成int。

代码语言:javascript
运行
复制
float value = 3.14159f;
int intValue = (int)value;
float fractional = fmodf(value, (float)intValue);
if(fractional > .5f)
    intValue++;

intValue是你的四舍五入。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7720238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档