tor*_*t32 12 checkout stripe-payments
我有一个条带帐户,我正在使用测试API密钥.
我创建了一个包含以下信息的计划 -
{
"amount": 995,
"created": 1418800758,
"currency": "usd",
"id": "c06e1791-1c6a-45fe-9c26-8f0c07dda967",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {},
"name": "Pro2",
"object": "plan",
"statement_description": null,
"statement_descriptor": null,
"trial_period_days": null
}
Run Code Online (Sandbox Code Playgroud)
我在我的项目中使用checkout.js.填写完所有数据并点击上述计划的付款后,会引发错误"无效整数994.999999999".
9.94美元,9.96美元,29.95美元以及我试过的其他价值不会引发此错误.
这是一个结帐错误还是与我的设置有关?
错误的屏幕截图 -
jsfiddle再现错误 - http://jsfiddle.net/f30z9uc6/2/
koo*_*jah 26
这里的问题是Javascript中的浮点错误.如果你看看你的jsfiddle的这个更新版本,你会看到发生了什么以及我如何修复它.您需要对计算结果进行舍入,以确保最终得到一个整数:
var amount = Math.round(9.95*100); // gives 995
Run Code Online (Sandbox Code Playgroud)
要阅读有关Javascript和浮点运算的更多信息,您应该查看"浮点指南"