mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			745 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			745 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
// +build go1.6
 | 
						|
 | 
						|
package humanize
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"math/big"
 | 
						|
	"strings"
 | 
						|
)
 | 
						|
 | 
						|
// BigCommaf produces a string form of the given big.Float in base 10
 | 
						|
// with commas after every three orders of magnitude.
 | 
						|
func BigCommaf(v *big.Float) string {
 | 
						|
	buf := &bytes.Buffer{}
 | 
						|
	if v.Sign() < 0 {
 | 
						|
		buf.Write([]byte{'-'})
 | 
						|
		v.Abs(v)
 | 
						|
	}
 | 
						|
 | 
						|
	comma := []byte{','}
 | 
						|
 | 
						|
	parts := strings.Split(v.Text('f', -1), ".")
 | 
						|
	pos := 0
 | 
						|
	if len(parts[0])%3 != 0 {
 | 
						|
		pos += len(parts[0]) % 3
 | 
						|
		buf.WriteString(parts[0][:pos])
 | 
						|
		buf.Write(comma)
 | 
						|
	}
 | 
						|
	for ; pos < len(parts[0]); pos += 3 {
 | 
						|
		buf.WriteString(parts[0][pos : pos+3])
 | 
						|
		buf.Write(comma)
 | 
						|
	}
 | 
						|
	buf.Truncate(buf.Len() - 1)
 | 
						|
 | 
						|
	if len(parts) > 1 {
 | 
						|
		buf.Write([]byte{'.'})
 | 
						|
		buf.WriteString(parts[1])
 | 
						|
	}
 | 
						|
	return buf.String()
 | 
						|
}
 |