package lxconv import ( "encoding/json" "fmt" "strconv" "strings" ) // IntToStr 数字转换字符串 func IntToStr(i int) string { return strconv.Itoa(i) } // Int64ToStr 64位数字转换字符串 func Int64ToStr(i int64) string { return strconv.FormatInt(i, 10) } // StrToInt 字符串转换位int func StrToInt(str string) int { intnum, _ := strconv.Atoi(str) return intnum } // StrToInt64 字符串转换位int64 func StrToInt64(str string) int64 { intnum, _ := strconv.ParseInt(str, 10, 64) return intnum } // StrToFloat64 字符串转换浮点数 func StrToFloat64(str string, i int) float64 { v2, _ := strconv.ParseFloat(str, i) return v2 } // ParseInt64 字符串转换位int64 func ParseInt64(val interface{}) int64 { if val == nil { return 0 } switch ret := val.(type) { case string: return StrToInt64(ret) case int8: return int64(ret) case uint8: return int64(ret) case int16: return int64(ret) case uint16: return int64(ret) case int: return int64(ret) case uint: return int64(ret) case int64: return int64(ret) case uint64: return int64(ret) case float32: return int64(ret) case float64: return int64(ret) } return 0 } // ParseInt 字符串转换位int func ParseInt(val interface{}) int { if val == nil { return 0 } switch ret := val.(type) { case string: return StrToInt(ret) case int8: return int(ret) case uint8: return int(ret) case int16: return int(ret) case uint16: return int(ret) case int: return int(ret) case uint: return int(ret) case int64: return int(ret) case uint64: return int(ret) case float32: return int(ret) case float64: return int(ret) } return 0 } // FloatTostr 浮点数转换int卡类型 func FloatTostr(floatstr float64, i int) string { return strconv.FormatFloat(floatstr, 'E', -1, i) } // JsonEncode json转字符串 func JsonEncode(data interface{}) string { datastr, _ := json.Marshal(data) return string(datastr) } // ToInt 任意类型强转int func ToInt(a interface{}) int { ai := 0 switch a := a.(type) { case float64: ai = int(a) case float32: ai = int(a) case int: ai = a case int32: ai = int(a) case int64: ai = int(a) case string: ai = StrToInt(a) default: } return ai } // ToInt64 任意类型强转int64 func ToInt64(a interface{}) int64 { var ai int64 switch a := a.(type) { case float64: ai = int64(a) case float32: ai = int64(a) case int: ai = int64(a) case int32: ai = int64(a) case int64: ai = a case string: ai = StrToInt64(a) default: } return ai } // ToFloat64 任意类型强转float64 func ToFloat64(a interface{}) float64 { var ai float64 switch a := a.(type) { case float64: ai = a case float32: ai = float64(a) case int: ai = float64(a) case int32: ai = float64(a) case int64: ai = float64(a) case string: ai = StrToFloat64(a, 64) default: } return ai } // ToString 任意类型强转字符串 func ToString(a interface{}) string { var ai string switch a := a.(type) { case float64: ai = strconv.FormatFloat(a, 'E', -1, 64) case float32: ai = strconv.FormatFloat(float64(a), 'E', -1, 64) case int: ai = fmt.Sprintf("%d", a) case int32: ai = fmt.Sprintf("%d", a) case int64: ai = fmt.Sprintf("%d", a) case string: ai = fmt.Sprintf("%s", a) default: ai = fmt.Sprintf("%v", a) } return ai } func InterfaceToStr(v interface{}) string { str := "" switch v.(type) { case string: str = v.(string) default: jsonbyte, _ := json.Marshal(v) str = string(jsonbyte) } return str } // ToBool 转换 bool类型 func ToBool(a interface{}) bool { s := ToString(a) if s == "1" || strings.ToLower(s) == "true" { return true } return false }