Обратите внимание, что я знаю, что были некоторые другие вопросы, но нет реального ответа на SO относительно этой проблемы.
Итак, что происходило с тех пор, как было реализовано значение поля приращения, это то, что при приращенииплавающие числа, в большинстве случаев вы получите дюжину десятичных знаков вместо действительного числа.
// incrementing 0, with 0.1, 11 times, returns 1.0999999999999999
Math.round( 1.0999999999999999 * 100 + Number.EPSILON ) / 100
Это возвращает правильное число ... поэтому мне интересно, не может ли это быть реализовано внутри методачто связано с увеличением действительного значения внутри Firestore?
Проблема в том, что когда я хочу показать цифры на основе локали, я использую следующее:
number.toLocaleString( undefined, { minimumFractionDigits: 2 })
Это будет показывать 1.09
, которыйнеправильно, и клиенты запутываются в своих доходах.
Что нужно сделать, кроме манипулирования данными после получения их на стороне клиента?
Еще один побочный эффект этого заключается в том, что при увеличении большого отрицательного значениязначение, иногда, по какой-то причине, вы получаете это +e
внутри вашего значения в Firestore и при извлечении его на стороне сервера (по крайней мере,h в PHP Admin SDK) число заканчивается строкой, а не целым числом.