logo
logo
Надо делать немного иначе [Dervish 05/03/2021 00:41]
Исправьте курс на 0,001 BTC = 48 USD и переполнения не будет.
 
Дело в том, что программа всегда использует целочисленную арифметику. И когда Вы указываете для валюты точность в 8 знаков после запятой, то суммы все равно будут представляться виде целых значений. Только младшие 10 десятичных разрядов (заказанные 8 и еще 2 дополнительные для правильных округлений) будут считаться, что они находятся после запятой. Ну и программа правильным образом отформатирует их при выводе.
 
Из-за этого и возникает переполнение. Потому что 1 BTC будет храниться как целое 10000000000. А вот если исправить значения курса так, как я предложил, то проблема уйдет.