first version
Dieser Commit ist enthalten in:
Ursprung
d3495e9d02
Commit
1a32093344
4 geänderte Dateien mit 137 neuen und 2 gelöschten Zeilen
102
thousands.go
Normale Datei
102
thousands.go
Normale Datei
|
|
@ -0,0 +1,102 @@
|
|||
package thousands
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func Separate(Number interface{}, language ...string) (string, error) {
|
||||
|
||||
switch Number.(type) {
|
||||
case int:
|
||||
case int8:
|
||||
case int16:
|
||||
case int32:
|
||||
case int64:
|
||||
case float32:
|
||||
case float64:
|
||||
|
||||
default:
|
||||
return "", fmt.Errorf("no valid number format")
|
||||
}
|
||||
|
||||
formattedNumber := fmt.Sprintf("%.2f", Number)
|
||||
|
||||
if len(language) < 1 {
|
||||
language[0] = "en"
|
||||
}
|
||||
|
||||
switch language[0] {
|
||||
case "de":
|
||||
|
||||
formattedNumber = strings.ReplaceAll(formattedNumber, ",", ".")
|
||||
numberLength := len(formattedNumber)
|
||||
|
||||
dec := ""
|
||||
|
||||
if strings.Index(formattedNumber, ".") != -1 {
|
||||
dec = formattedNumber[strings.Index(formattedNumber, ".")+1 : numberLength]
|
||||
formattedNumber = formattedNumber[0:strings.Index(formattedNumber, ".")]
|
||||
|
||||
}
|
||||
|
||||
for i := 0; i <= numberLength; i = i + 4 {
|
||||
|
||||
a := formattedNumber[0 : numberLength-i]
|
||||
b := formattedNumber[numberLength-i : numberLength]
|
||||
formattedNumber = a + "." + b
|
||||
|
||||
}
|
||||
|
||||
if formattedNumber[0:1] == "." {
|
||||
formattedNumber = formattedNumber[1:numberLength]
|
||||
}
|
||||
|
||||
if formattedNumber[numberLength-1:numberLength] == "." {
|
||||
formattedNumber = formattedNumber[0 : numberLength-1]
|
||||
}
|
||||
|
||||
if dec != "" {
|
||||
formattedNumber = formattedNumber + "," + dec
|
||||
}
|
||||
|
||||
return formattedNumber, nil
|
||||
|
||||
case "en":
|
||||
|
||||
formattedNumber = strings.ReplaceAll(formattedNumber, ",", "")
|
||||
numberLength := len(formattedNumber)
|
||||
|
||||
dec := ""
|
||||
|
||||
if strings.Index(formattedNumber, ".") != -1 {
|
||||
dec = formattedNumber[strings.Index(formattedNumber, ".")+1 : numberLength]
|
||||
formattedNumber = formattedNumber[0:strings.Index(formattedNumber, ".")]
|
||||
|
||||
}
|
||||
|
||||
for i := 0; i <= numberLength; i = i + 4 {
|
||||
|
||||
a := formattedNumber[0 : numberLength-i]
|
||||
b := formattedNumber[numberLength-i : numberLength]
|
||||
formattedNumber = a + "," + b
|
||||
|
||||
}
|
||||
|
||||
if formattedNumber[0:1] == "," {
|
||||
formattedNumber = formattedNumber[1:numberLength]
|
||||
}
|
||||
|
||||
if formattedNumber[numberLength-1:numberLength] == "," {
|
||||
formattedNumber = formattedNumber[0 : numberLength-1]
|
||||
}
|
||||
|
||||
if dec != "" {
|
||||
formattedNumber = formattedNumber + "." + dec
|
||||
}
|
||||
|
||||
return formattedNumber, nil
|
||||
}
|
||||
|
||||
return formattedNumber, nil
|
||||
}
|
||||
Laden …
Tabelle hinzufügen
Einen Link hinzufügen
In neuem Issue referenzieren