python - Django Python:将价格转换为条纹金额
问题描述
我正在使用 Stripe,他们要求以美分/便士为单位的值,而不是四舍五入到小数点后两位。我正在使用下面的,到目前为止效果很好,我只是担心强制转换为 str() 以及这是否会导致任何意外问题?
它可以通过条带,并保存在我的 DecimalField 中也可以。
stripeAmount = str(int(round(plan.price, 2) * 100))
解决方案
由于创建一个 PaymentIntent 例如 [1] 接收一个整数,因此不需要将其转换为字符串。我鼓励您像在 Stripe 中那样存储您的价格,即作为代表最小货币单位的整个单位整数。例如,200 美元表示为 20000 美分。
将事物存储为浮点数和小数然后对其进行四舍五入通常会导致舍入错误。
[1] https://stripe.com/docs/api/payment_intents/create?lang=python
推荐阅读
- javascript - 在鼠标悬停时停止滑动并在鼠标悬停时开始播放
- python - graphlab 数字未显示在 github 上托管的 jupyter 笔记本中
- php - 无法从 Laravel 的表单中获取我的数据?
- python - 如何让 Paramiko 运行 iPerf 等非标准命令
- c++ - 日期更改为次日时的 boostlog 异常
- linux-kernel - 我应该在异构多线程 CPU 上启用 SMP 吗?
- javascript - 如何打破 compose 或 pipe 并返回所有当前数据?
- javascript - React Hooks 错误:只能在函数组件的主体内调用 Hooks
- sulu - Sulu:是否可以限制每个空间的可用页面模板?
- r - 在 R 中使用 text2vec - 错误:没有名为“futile.options”的包