如何舍入一个浮点数?
Posted
技术标签:
【中文标题】如何舍入一个浮点数?【英文标题】:How can I round down a float? 【发布时间】:2010-11-02 05:04:10 【问题描述】:为了以后的计算,我需要以某种方式将浮点值向下舍入,精度为小数点后两位。
例如,如果我有 0.1098,我需要它变成 0.10,如果我有 0.1176,我需要它变成 0.11。
我想我几乎需要将浮点数截断到小数点后 2 位
【问题讨论】:
【参考方案1】:通常在将其转换为字符串时进行四舍五入,因为二进制浮点数不能总是准确地表示 2 个十进制数字。要获得 2 位数的 NSString,请使用
[NSString stringWithFormat:@"%.02f", num];
如果您真的想要截断为浮点数以进行进一步计算,请使用类似
((int)(num * 100)) / 100.0
如果你想舍入而不是截断
((int)(num * 100 + 0.5)) / 100.0
【讨论】:
该死的,这么快就回答了!顺便说一句,这是正确的答案。 除非他想向下取整而不向上取整,所以不要加 .5 好吧,我需要将该浮点值传递给一个函数(这是 NSTimer 的时间间隔),所以我是否可以通过调用 [myString doubleValue] 将其转换回双精度值? 没关系,我刚刚注意到您回答的另一部分,谢谢以上是关于如何舍入一个浮点数?的主要内容,如果未能解决你的问题,请参考以下文章