私はPayPalの適応型支払いシステムをウェブサイトに統合していますが、小切手2小数点以下の桁数が四捨五入されていないとエラーが発生します失われたこれに対する解決策は何ですか?私は現在、金額を四捨五入していますが、小数点以下の金額をどのように得るかについての考えはありますか?paypalアダプティブ決済問題 - 小数点以下切り捨て
答えて
PayPalに送信する金額が通貨に対して適切に丸められていることを確認する必要があります。これは、米ドルの金額に最大2つのサブユニット(セント)があることを意味します。
適応有料ルビーの宝石を使用して、まだ問題が発生した場合:私は最近、ルビーの宝石とに走った
もう一つの問題は、金銭的価値のために悪い習慣である、彼らは代わりに小数の浮動小数点数を使用することです。浮動小数点は不正確です。 ...例えば、Rubyでは
2.20 - 2.01 = 0.1900000000000004
そのbuild_pay
方法にPARAMに渡し、あなたはまだエラーを取得しているときに、適切量のサブユニットを設定している場合...
If the fractional amount is rounded for currency conversion, funds could be lost
この問題は、gemがfloatを使用している可能性があります。あなたのログにはこれが表示され、715.57
という数字を使ってテストすることができます。その宝石は、の宝石に.to_f
を使用しているため、715.57000000001
というAPIに送信します。この問題を解決するには
、私の猿は、本質的に代わりにフロートのBigDecimalのようにそれをキャストし、私のアプリにこれを追加することによって、私のレールのアプリで自分のFloat
クラスにパッチを当て:
module PayPal::SDK::Core
module API
module DataTypes
module SimpleTypes
class Float < ::Float
def self.new(float)
# Floats are inccurate. BigDecimal is better.
# Ruby example: 2.20 - 2.01 = 0.1900000000000004
# To support currencies with up to 4 subunits, we round(4)
BigDecimal.new(float.to_f.round(4).to_s)
end
end
end
end
end
end
を私config/initializers/paypal.rb
に。これはもっとも洗練されたソリューションだとは言えませんが、うまくいきます。私は彼らのレポにも問題を作りました、そしてうまくいきなり聞くことができます。
通貨とのフロート問題に関するさらに詳しい情報:
は参考1:https://stackoverflow.com/a/3730040/1109211
参考2:あなたはそれを使用していることは、小数点の右側に二つ以上の数字を使用していますどのような通貨https://stackoverflow.com/a/3730249/1109211
- 1. 小数点以下切り捨て
- 2. 小数点以下2桁の小数点以下を切り捨てます
- 3. 小数点以下の零点を切り捨てる
- 4. 小数点以下を切り捨てます
- 5. SQL Server 2008で小数点以下を切り捨てます
- 6. SQL - 小数点以下を切り捨てる場合
- 7. トレーニングデータの小数点以下を切り捨てます
- 8. Googleフォームを小数点以下切り捨てにする
- 9. gridview devexpressは小数点以下を切り捨てます
- 10. Rocket Universe小数点以下を切り捨てる
- 11. インデックスの小数点以下を切り捨てる
- 12. 小数点以下を切り捨てるjava
- 13. Angularjs指令小数点以下2桁の切り捨て
- 14. Struts 2形式の小数点以下切り捨て
- 15. Fortran - 1小数点以下を切り捨てたい
- 16. 小数点以下を切り捨てる方法は?
- 17. SQLサーバーの小数点以下1桁まで切り捨て
- 18. javascriptで小数点以下2桁まで切り捨て
- 19. 小数点以下を切り捨てる方法は?
- 20. CSS SASSの小数点以下切り捨て
- 21. 小数点以下2〜4小数点以下切り上げ
- 22. KendoNumericTextBox小数点以下の四捨五入問題
- 23. TSQLの小数点以下桁数を切り捨てる方法は?
- 24. 小数点以下を切り捨てずにSwiftの浮動小数点数にシリアル化
- 25. ToStringのみを使用して小数点以下を切り捨てる
- 26. 小数点以下を切り捨てることはできません。
- 27. デルファイADOはSQL Serverから小数点以下を切り捨てます
- 28. DBに挿入した後に小数点以下を切り捨てます
- 29. NSString - double内の小数点以下をすべて切り捨てます
- 30. JavaScriptを使用して未使用の小数点以下切り捨て
ポイント?米国通貨の最小単位は1セント(0.01)で、1ドルの100分の1より小額*はありません。解決策は適切な丸めであり、分数セントは適切に切り上げられます。顧客に伝えることはできません。そのコストは$ 11.125 *です。 –