我很难找出看起来应该非常简单的东西。我需要将 NSDecimalNumber 精确舍入到特定的小数位数(在运行时确定)。据我所知,我有两个选项,但我都不喜欢。
- 转换为 float ,并使用 C 舍入函数:我不喜欢这样,因为在这种情况下准确性很重要。 float 不能总是准确地表示十进制数,这可能会导致问题。
- 使用 NSNumberFormatter 转换为字符串,然后再转换回来:我不喜欢这个,因为它看起来丑陋且效率低下。
还有其他我错过的方法吗? 必须有一个简单的方法来对 NSDecimalNumbers 进行舍入,但我似乎无法弄清楚它是什么。
最佳答案
您只需使用所需的 NSDecimalNumberBehaviors
协议(protocol)调用 decimalNumberByRoundingAccordingToBehavior:
。请参阅 dev docs 中的 NSDecimalNumberBehaviors
引用.
更新:参见 http://www.cimgf.com/2008/04/23/cocoa-tutorial-dont-be-lazy-with-nsdecimalnumber-like-me/
关于objective-c - 四舍五入 NSDecimalNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3981219/