From db25b111e007dbee367097c62cf0635f14fcb4ca Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 25 Aug 2025 08:53:47 +0300 Subject: [PATCH] Fixed display of currency minor part from earn stats in some cases. --- .../info/channel_statistics/earn/earn_format.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/earn_format.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/earn_format.cpp index 9e1ba75d52..b45fd87c51 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/earn_format.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/earn_format.cpp @@ -51,7 +51,20 @@ QString MinorPart(EarnInt value) { } QString MinorPart(CreditsAmount value) { - return QString::number(value.value(), 'f', 2).right(3); + static const auto DecimalPoint = QLocale().decimalPoint(); + static const int DecimalPointLength = DecimalPoint.length(); + + const auto fractional = std::abs(int(value.value() * 100)) % 100; + auto result = QString(DecimalPointLength + 2, Qt::Uninitialized); + + for (int i = 0; i < DecimalPointLength; ++i) { + result[i] = DecimalPoint[i]; + } + + result[DecimalPointLength] = QChar('0' + fractional / 10); + result[DecimalPointLength + 1] = QChar('0' + fractional % 10); + + return result; } QString ToUsd(