Swiftで数値を丸めようとしているので、本当に混乱しています。プレイグラウンドでコードを実行すると、数値は完全に丸められますが、「パラメーター」を使用してAlamofireで送信すると、数値が丸められません。 ...この問題に関するアイデアはありますか?これらは私の数を丸める私の試みです:(
試行1
var orderTotal = 0.0
orderTotal = Double(total * 100).rounded()/100
let parameters: [String: Any?] = [
"Total": orderTotal
]
試行2
let parameters: [String: Any?] = [
"Total": total.rounded(digits: 2)
]
extension Double {
func rounded(digits: Int) -> Double {
let multiplier = pow(10.0, Double(digits))
return (self * multiplier).rounded() / multiplier
}
}
試行3
let parameters: [String: Any?] = [
"Total": Float(String(format:"%.2f", (total)))
]
PS。「合計」は、小数点以下6〜8桁のFloatパラメーターです。
ダブルスとフロートはバイナリ浮動小数点です。10進値には丸められません。それらはバイナリ値に丸められます。10進値が必要な場合は、Decimalを使用します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加