私はこの情報を持っています。印刷params2
即決のラウンド
結果が今
["app_token": myapptoken, "member_access_token": accessToken, "payamount_credit": 9.869999999999999, "pay_process": 0]
"payamount_credit": 9.87
は、私はすべての方法を試してみました"payamount_credit": 9.869999999999999
です
let params2: [String: AnyObject] = [
"app_token": myapptoken,
"member_access_token": accessToken!,
"pay_process": 0,
"payamount_credit": 9.87 //hardcode
]
ラウンドは存在しますが、同じように動作します。
NSString(format: "%.\2f", 9.87)
Double(round(1000*9.87)/1000)
すべての奇妙なことはこれだけ特定の数(9.87)で起こるということで、神秘的な何かがあります。
プレイグラウンドスクリーン。
これは浮動小数点値です。 :) http://programmers.stackexchange.com/questions/101163/what-causes-floating-point-rounding-errors –
新しいトークンをプライベートにする必要があります。あなたはそれらをサンプル出力に含めました。 – Brett