package utils

import (
	"fmt"
	"strconv"
)

func StrToInt64(str string) int64 {
	return ToInt64ByDefault(str, 0)
}

func StrToInt(str string) int {
	return ToIntByDefault(str, 0)
}

func ToInt64ByDefault(str string, def int64) int64 {
	val, err := strconv.ParseInt(str, 10, 64)
	if err != nil {
		val = def
	}
	return val
}

func ToIntByDefault(str string, def int) int {
	val, err := strconv.Atoi(str)
	if err != nil {
		val = def
	}
	return val
}

// Int64ToString int64->string
func Int64ToString(n int64) string {
	return strconv.FormatInt(n, 10)
}

func Float32ToInt64(count float32) (int64, error) {
	countStr := fmt.Sprintf("%0.0f", count)
	return strconv.ParseInt(countStr, 10, 64)
}
