mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
fix AsApproximateFloat64() for BinarySI
This commit is contained in:
parent
33aba7ee02
commit
3d1076ebf3
@ -459,18 +459,7 @@ func (q *Quantity) AsApproximateFloat64() float64 {
|
||||
if exponent == 0 {
|
||||
return base
|
||||
}
|
||||
|
||||
// multiply by the appropriate exponential scale
|
||||
switch q.Format {
|
||||
case DecimalExponent, DecimalSI:
|
||||
return base * math.Pow10(exponent)
|
||||
default:
|
||||
// fast path for exponents that can fit in 64 bits
|
||||
if exponent > 0 && exponent < 7 {
|
||||
return base * float64(int64(1)<<(exponent*10))
|
||||
}
|
||||
return base * math.Pow(2, float64(exponent*10))
|
||||
}
|
||||
return base * math.Pow10(exponent)
|
||||
}
|
||||
|
||||
// AsInt64 returns a representation of the current value as an int64 if a fast conversion
|
||||
|
@ -1207,11 +1207,11 @@ func TestQuantityAsApproximateFloat64(t *testing.T) {
|
||||
{decQuantity(1024, 0, BinarySI), 1024},
|
||||
{decQuantity(8*1024, 0, BinarySI), 8 * 1024},
|
||||
{decQuantity(7*1024*1024, 0, BinarySI), 7 * 1024 * 1024},
|
||||
{decQuantity(7*1024*1024, 1, BinarySI), (7 * 1024 * 1024) * 1024},
|
||||
{decQuantity(7*1024*1024, 4, BinarySI), (7 * 1024 * 1024) * (1024 * 1024 * 1024 * 1024)},
|
||||
{decQuantity(7*1024*1024, 8, BinarySI), (7 * 1024 * 1024) * (1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024)},
|
||||
{decQuantity(7*1024*1024, -1, BinarySI), (7 * 1024 * 1024) / float64(1024)},
|
||||
{decQuantity(7*1024*1024, -8, BinarySI), (7 * 1024 * 1024) / float64(1024*1024*1024*1024*1024*1024*1024*1024)},
|
||||
{decQuantity(7*1024*1024, 1, BinarySI), (7 * 1024 * 1024) * 10},
|
||||
{decQuantity(7*1024*1024, 4, BinarySI), (7 * 1024 * 1024) * 10000},
|
||||
{decQuantity(7*1024*1024, 8, BinarySI), (7 * 1024 * 1024) * 100000000},
|
||||
{decQuantity(7*1024*1024, -1, BinarySI), (7 * 1024 * 1024) * math.Pow10(-1)}, // '* Pow10' and '/ float(10)' do not round the same way
|
||||
{decQuantity(7*1024*1024, -8, BinarySI), (7 * 1024 * 1024) / float64(100000000)},
|
||||
|
||||
{decQuantity(1024, 0, DecimalSI), 1024},
|
||||
{decQuantity(8*1024, 0, DecimalSI), 8 * 1024},
|
||||
|
Loading…
Reference in New Issue
Block a user