| 8 | 8 |
)
|
| 9 | 9 |
|
| 10 | 10 |
const (
|
| 11 | |
_ib SizeB1024 = iota
|
|
11 |
_ib SizeB1024 = iota + 1
|
| 12 | 12 |
_iKiB SizeB1024 = 1 << (iota * 10)
|
| 13 | 13 |
_iMiB
|
| 14 | 14 |
_iGiB
|
|
| 32 | 32 |
}
|
| 33 | 33 |
}
|
| 34 | 34 |
|
| 35 | |
var b strings.Builder
|
| 36 | 35 |
var unit SizeB1024
|
| 37 | 36 |
switch {
|
| 38 | 37 |
case self < _iKiB:
|
| 39 | 38 |
unit = _ib
|
| 40 | |
b.WriteString(strconv.FormatFloat(float64(self), 'f', prec, 64))
|
| 41 | 39 |
case self < _iMiB:
|
| 42 | 40 |
unit = _iKiB
|
| 43 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_iKiB), 'f', prec, 64))
|
| 44 | 41 |
case self < _iGiB:
|
| 45 | 42 |
unit = _iMiB
|
| 46 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_iMiB), 'f', prec, 64))
|
| 47 | 43 |
case self < _iTiB:
|
| 48 | 44 |
unit = _iGiB
|
| 49 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_iGiB), 'f', prec, 64))
|
| 50 | 45 |
case self <= math.MaxInt64:
|
| 51 | 46 |
unit = _iTiB
|
| 52 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_iTiB), 'f', prec, 64))
|
| 53 | 47 |
}
|
|
48 |
|
|
49 |
var b strings.Builder
|
|
50 |
b.WriteString(strconv.FormatFloat(float64(self)/float64(unit), 'f', prec, 64))
|
| 54 | 51 |
|
| 55 | 52 |
if st.Flag(' ') {
|
| 56 | 53 |
b.WriteString(" ")
|
|
| 75 | 72 |
}
|
| 76 | 73 |
|
| 77 | 74 |
const (
|
| 78 | |
_b SizeB1000 = 0
|
|
75 |
_b SizeB1000 = 1
|
| 79 | 76 |
_KB SizeB1000 = 1000
|
| 80 | 77 |
_MB SizeB1000 = _KB * 1000
|
| 81 | 78 |
_GB SizeB1000 = _MB * 1000
|
|
| 99 | 96 |
}
|
| 100 | 97 |
}
|
| 101 | 98 |
|
| 102 | |
var b strings.Builder
|
| 103 | 99 |
var unit SizeB1000
|
| 104 | 100 |
switch {
|
| 105 | 101 |
case self < _KB:
|
| 106 | 102 |
unit = _b
|
| 107 | |
b.WriteString(strconv.FormatFloat(float64(self), 'f', prec, 64))
|
| 108 | 103 |
case self < _MB:
|
| 109 | 104 |
unit = _KB
|
| 110 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_KB), 'f', prec, 64))
|
| 111 | 105 |
case self < _GB:
|
| 112 | 106 |
unit = _MB
|
| 113 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_MB), 'f', prec, 64))
|
| 114 | 107 |
case self < _TB:
|
| 115 | 108 |
unit = _GB
|
| 116 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_GB), 'f', prec, 64))
|
| 117 | 109 |
case self <= math.MaxInt64:
|
| 118 | 110 |
unit = _TB
|
| 119 | |
b.WriteString(strconv.FormatFloat(float64(self)/float64(_TB), 'f', prec, 64))
|
| 120 | 111 |
}
|
|
112 |
|
|
113 |
var b strings.Builder
|
|
114 |
b.WriteString(strconv.FormatFloat(float64(self)/float64(unit), 'f', prec, 64))
|
| 121 | 115 |
|
| 122 | 116 |
if st.Flag(' ') {
|
| 123 | 117 |
b.WriteString(" ")
|