-1
是否可以在NSDecimalNumber的索引處找到數字?在NSDecimalNumber的索引處查找數字
例如是這樣的可能嗎?
var a: NSDecimalNumber = 10.0
var indexOfa = a(index: 6)
//indexOfa = 6 (6th position from the left)
基本上,我試圖讓這輪下來x.xx5和x.xx6圍捕自定義舍入函數。
例如: 67.5558被四捨五入爲67.55。 67.5568四捨五入爲67.56。
...不是四捨五入問題的重複。我在此特別要求如何在NSDecimalNumber的指定索引處查找數字。
此外,您鏈接的答案不能回答我的問題。我可以使用NSDecimalNumber的四捨五入行爲,但是它會向上取整.5我需要它在.5和.6之間舍入。如果我能找到第二個十進制數的索引,我可以創建自己的自定義舍入函數。
我有一個可行的解決方案。但它很可怕。這裏有一些NSDecimalNumber擴展,但你可以猜測他們在做什麼。我敢肯定,那裏有一個更好的辦法...
public func currencyRoundDown() -> NSDecimalNumber {
let rounded: NSDecimalNumber
let toThree = self.roundDown(3)
let lower = self.roundDown(2).adding(0.005)
if lower.moreThan(toThree) || lower.same(toThree) {
rounded = toThree.roundDown(2)
} else {
rounded = toThree.roundUp(2)
}
return rounded
}
你可以研究了它,請看看這個問題 - > https://stackoverflow.com/questions/41744278/count-number-of-decimal-places-in-a-float-or-decimal -in-swift –
@LateNate不要複製你自己的問題。如果你問這個問題有什麼問題,請編輯它。 – matt
我不同意它不回答你的問題。如果你想到https://stackoverflow.com/questions/27338573/rounding-a-double-value-to-x-number-of-decimal-places-in-swift的答案,你可以看到答案是_is_ there 。問題是,你的問題並沒有增加混合;你可以通過搜索(並思考)來了解這一點。 – matt