2015-11-15 95 views
0

當使用NSDecimalNumber進行計算時,是否有等效NSNumberFormatterRoundingMode.RoundHalfUp是否有與NSDecimalNumber相同的RoundHalfUp?

因爲從我所看到的NSDecimalNumber只接受4 NSRoundingModes(通過NSDecimalNumberHandler):

enum NSRoundingMode : UInt { 
    case RoundPlain 
    case RoundDown 
    case RoundUp 
    case RoundBankers 
} 
+0

你總是可以乘以2,向上取整,然後除以2得到相同的結果。 – akashivskyy

+0

你的意思是乘以100,整數然後除以100? –

+0

我誤解了這個問題,認爲你正在談論最接近的0.5_。抱歉! – akashivskyy

回答

0

根據NSNumberFormatterRoundingMode Class Reference

NSNumberFormatterRoundHalfUp

回合朝着最接近的整數,或離開從零開始,如果等距。

含義1.5將舍入爲2,-1.5將舍入爲-2,如果距離0比-1更遠則爲-2。

根據NSRoundingMode - NSDecimalNumberBehaviors Protocol Reference

NSRoundPlain

圓爲最接近的可能的返回值;當兩個正數之間的中間點時,整理;當被夾在兩個 負數之間時,向下滾動。

他們給出的例子1.25將舍入到1.3和-1.35將舍入到-1.4。

它們在功能上是等效的。如果你想要完全相同的行爲,將roundingMode設置爲NSRoundMode.RoundPlain並且縮放爲0.

相關問題