From 8988cbe4e99e2d660e99948347cfe6934b899c01 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 28 Jun 2026 09:54:25 +0200 Subject: [PATCH] Bugfix/phantom UNKNOWN slice in portfolio proportion chart caused by floating point rounding (#7156) * Fix phantom UNKNOWN slice caused by floating-point rounding * Update changelog --- CHANGELOG.md | 1 + .../portfolio-proportion-chart.component.ts | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8af2fe3d8..e04adcfac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Fixed a phantom `UNKNOWN` slice in the portfolio proportion chart component caused by floating-point rounding - Fixed the base currency for the total value calculation in the public access for portfolio sharing - Fixed an issue in the public access for portfolio sharing that exposed absolute values of the top holdings of ETFs - Fixed the time zone handling in the `api` test suite for deterministic execution in `UTC` diff --git a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts index bf6fd193e..e24446c34 100644 --- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts +++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -204,8 +204,9 @@ export class GfPortfolioProportionChartComponent const unknownValueInPercentage = new Big(1).minus(totalValueInPercentage); - if (unknownValueInPercentage.gt(0)) { - // If total is below 100%, allocate the remaining percentage to UNKNOWN_KEY + // If total is below 100%, allocate the remaining percentage to UNKNOWN_KEY, + // but ignore negligible remainders to avoid a phantom slice + if (unknownValueInPercentage.gt(0.0001)) { if (chartData[UNKNOWN_KEY]) { chartData[UNKNOWN_KEY].value = chartData[UNKNOWN_KEY].value.plus( unknownValueInPercentage