Я сразу понял. Ещё одна вещь, которую я узнал о компьютерах более 40 лет назад и которая не изменилась.
Или использовать целые числа в копейках? Кажется, именно так делает Stripe. (Но ваше решение требует значительно меньше изменений в коде, так что, думаю, оно побеждает.)
Да, именно так: unit_amount — это центы, а amountDollars — значение ввода в формате «XX.XX».
Ошибка «неверное целое число» даже приходит от API Stripe.
Похоже, мы оба достаточно стары, чтобы знать о баге FDIV
Да, parseFloat используется для конвертации из/в поле ввода, которое представляет собой «валюту с двумя знаками после запятой». Свойство объекта unit_amount, очевидно, не имеет строгого типа, поэтому я предлагаю использовать Math.round().
Это не столбец на стороне сервера, оно передается в Stripe API.