Это упрямство ... Теперь я пытаюсь интегрировать Bitcoin на веб-сайт, но библиотека JSON-RPC возвращает только поплавки.
Числа с плавающей точкой имеют ограниченную точность. Хотя это зависит от системы, как правило, РНР использует формат двойной точности стандарта IEEE 754, который даст максимальную относительную погрешность из-за округления в порядке 1.11e-16. Номера элементарные арифметические операции могут давать большие ошибки, и, конечно же, progragation ошибки необходимо учитывать при нескольких операций усугубляются.
Кроме того, рациональные числа, которые точно представима в виде чисел с плавающей точкой в основании 10, как 0.1 или 0.7, не имеют точного представления, как числа с плавающей запятой в базе 2, которая не используется внутри, независимо от размера мантиссы. Следовательно, они не могут быть преобразованы в свои внутренние двоичные аналоги без небольшой потери точности. Это может привести к неожиданным результатам: например, пол ((0,1 + 0,7) * 10), как правило, возвращают 7 вместо ожидаемого 8, так как внутреннее представление будет что-то вроде 7.9999999999999991118 ....
Так никогда не доверять плавающие результаты номерных к последней цифре, и никогда не сравнивают числа с плавающей точкой на равенство. Если более высокая точность, необходимо, произвольные точности математические функции и функции доступны GMP.
Почему не может Bitcoin возвращаемых строк?
Вы сознательно нарушая все языки (библиотеки питона JSON-RPC, PHP JSON-RPC и Perl JSON-RPC). Использование поплавков в любом месте в финансовых операциях, является неприемлемым.
json_decode PHP не поддерживает так или иначе вернуть поплавки в виде строк. Опция не существует.
PHP решение: написать / сохранить свой собственный JSON парсер.
Ни делает Питон JSON-RPC. Придется написать свой собственный JSON-RPC Lib, используя модуль JSON вместо того, чтобы использовать тот, который уже существует.
То же самое для Perl.
На самом деле, почему это такое большое дело? Bitcoin нарушается, и это требует фиксации.