GOOGLE ADS

суббота, 30 апреля 2022 г.

Как отобразить количество дебетовых и кредитовых транзакций?

Я работаю над простым транзакционным проектом и впервые пишу на Java, так что вот фрагменты:

 private static void loadHistory(List<Transaction> transactions) {
double totalDebitCount = calculateTotalCountByType(transactions, TransactionType.DEBIT);
double totalCreditCount = calculateTotalCountByType(transactions, TransactionType.CREDIT);
System.out.println("There are " + totalCreditCount + "transactions in the database");
System.out.println();
for (Transaction transaction: transactions) {
System.out.println(transaction.toString());
}
System.out.println();
System.out.println("Total count for all debit transactions is" + totalDebitCount);
System.out.println("Total count for all credit transactions is " + totalCreditCount);
}

и второй:

 public static double calculateTotalCountByType(List<Transaction> transactions, TransactionType type) {
double total = 0;
for (Transaction transaction: transactions) {
if (transaction.type == type) {
total = total + transaction.quantity * transaction.exchangeRate;
}
}
return total;
}

кстати, мне вообще не нужен exchangeRate*quantity так что его можно просто вырезать


Решение проблемы

Ваш код в настоящее время вычисляет сумму сумм транзакций по типу

total = total + transaction.quantity; // Ignoring exchange rate

Если все, что вы хотите, имеет значение, это должно быть

total = total + 1

и возвращаемое значение должно быть int, а не double.

Боковое примечание: НИКОГДА не используйте плавающую точку для финансовых сумм. Плавающая точка страдает от потери точности в некоторых операциях. ВСЕГДА используйте формат без потерь, такой как BigDecimal.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...