mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-10-26 05:42:07 +08:00
fix(traffic): avoid scientific notation in traffic display near 1000 threshold (#7928)
* fix(traffic): avoid scientific notation in traffic display near 1000 threshold When a traffic value in any unit (KB, MB, etc.) falls in the 999.5–1000 range, toPrecision(3) rounds it to 1000 but outputs scientific notation "1.00e+3" instead of plain "1000". Check Math.round(dat) >= 1000 instead of dat >= 1000 to catch this rounding boundary. Signed-off-by: Alec <alechron@outlook.com> * fix(traffic): avoid scientific notation in formatConnectionTraffic Signed-off-by: Alec <alechron@outlook.com> --------- Signed-off-by: Alec <alechron@outlook.com>
This commit is contained in:
@@ -35,7 +35,7 @@ export const formatConnectionTraffic = (value?: number) => {
|
||||
? 0
|
||||
: Math.min(Math.floor(Math.log2(value) / 10), TRAFFIC_UNITS.length - 1)
|
||||
const data = value / 1024 ** exp
|
||||
const text = data >= 1000 ? data.toFixed(0) : data.toPrecision(3)
|
||||
const text = Math.round(data) >= 1000 ? data.toFixed(0) : data.toPrecision(3)
|
||||
return `${text} ${TRAFFIC_UNITS[exp]}`
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ const parseTraffic = (num?: number) => {
|
||||
const exp =
|
||||
num < 1 ? 0 : Math.min(Math.floor(Math.log2(num) / 10), UNITS.length - 1)
|
||||
const dat = num / Math.pow(1024, exp)
|
||||
const ret = dat >= 1000 ? dat.toFixed(0) : dat.toPrecision(3)
|
||||
const ret = Math.round(dat) >= 1000 ? dat.toFixed(0) : dat.toPrecision(3)
|
||||
const unit = UNITS[exp]
|
||||
|
||||
return [ret, unit]
|
||||
|
||||
Reference in New Issue
Block a user