From a0aef5d579c4082ad46db8ec221e45eb0008e670 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 24 Jul 2024 14:57:51 +0200 Subject: [PATCH] Fix https://github.com/firefly-iii/firefly-iii/issues/9078 --- app/Support/Models/AccountBalanceCalculator.php | 4 ++++ app/Support/Steam.php | 1 + 2 files changed, 5 insertions(+) diff --git a/app/Support/Models/AccountBalanceCalculator.php b/app/Support/Models/AccountBalanceCalculator.php index 3c17a3fc1e..192894a2e9 100644 --- a/app/Support/Models/AccountBalanceCalculator.php +++ b/app/Support/Models/AccountBalanceCalculator.php @@ -121,6 +121,10 @@ class AccountBalanceCalculator $sumAmount = '' === $sumAmount ? '0' : $sumAmount; $sumForeignAmount = '' === $sumForeignAmount ? '0' : $sumForeignAmount; + // at this point SQLite may return scientific notation because why not. Terrible. + $sumAmount = app('steam')->floatalize($sumAmount); + $sumForeignAmount = app('steam')->floatalize($sumForeignAmount); + // first create for normal currency: $entry = $this->getAccountBalanceByAccount($account, $transactionCurrency); diff --git a/app/Support/Steam.php b/app/Support/Steam.php index 746668a2a0..3e13ed18de 100644 --- a/app/Support/Steam.php +++ b/app/Support/Steam.php @@ -836,6 +836,7 @@ class Steam if (!str_contains($value, 'E')) { return $value; } + Log::debug(sprintf('Floatalizing %s', $value)); $number = substr($value, 0, (int)strpos($value, 'E')); if (str_contains($number, '.')) {