Dieser Commit ist enthalten in:
o.pinke 2025-06-08 19:21:34 +02:00
Ursprung d3495e9d02
Commit 1a32093344
4 geänderte Dateien mit 137 neuen und 2 gelöschten Zeilen

6
.idea/vcs.xml Normale Datei
Datei anzeigen

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

Datei anzeigen

@ -4,13 +4,30 @@
<option name="autoReloadType" value="ALL" />
</component>
<component name="ChangeListManager">
<list default="true" id="d5f54382-616d-41b2-b8f9-53d04e37d644" name="Changes" comment="" />
<list default="true" id="d5f54382-616d-41b2-b8f9-53d04e37d644" name="Changes" comment="init">
<change afterPath="$PROJECT_DIR$/go.mod" afterDir="false" />
<change afterPath="$PROJECT_DIR$/thousands.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Go File" />
</list>
</option>
</component>
<component name="GOROOT" url="file://$USER_HOME$/Downloads/software/go1.24.3" />
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectId" id="2yEXSRkzWX5OSblFIfKjT32AMYm" />
<component name="ProjectViewState">
<option name="autoscrollFromSource" value="true" />
@ -19,19 +36,26 @@
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"DefaultGoTemplateProperty": "Go File",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.go.formatter.settings.were.checked": "true",
"RunOnceActivity.go.migrated.go.modules.settings": "true",
"RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true",
"WebServerToolWindowFactoryState": "false",
"go.import.settings.migrated": "true",
"last_opened_file_path": "/var/www/GoProjects/oldperl/go-thousands"
"last_opened_file_path": "/var/www/GoProjects/oldperl/go-thousands",
"node.js.detected.package.eslint": "true",
"node.js.selected.package.eslint": "(autodetect)"
}
}]]></component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="init" />
<option name="LAST_COMMIT_MESSAGE" value="init" />
</component>
<component name="VgoProject">
<settings-migrated>true</settings-migrated>
</component>

3
go.mod Normale Datei
Datei anzeigen

@ -0,0 +1,3 @@
module gitport.de/oldperl/go-thousands
go 1.24

102
thousands.go Normale Datei
Datei anzeigen

@ -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
}