- 格式转换
- int 转换为 int32
func int2int8(n int) (uint8, error) {
//判断范围
if 0 <= n && n <= math.MaxUint8 {
//只返回值,错误为空
return uint8(n), nil
}
//返回错误
return 0, fmt.Errorf("%d 超出了整数int8的范围", n)
} - float转换为int
func float2int(x float64) int {
//判断范围
if math.MinInt32 <= x && x <= math.MaxInt32 { // x lies in the integer range
//分解整数部分和小数部分
whole, fraction := math.Modf(x)
if fraction >= 0.5 {
whole++
}
return int(whole)
}
panic(fmt.Sprintf("%g 超出int32的范围", x))
} - 测试:
- 代码:
func main() {
uint_8, _ := int2int8(100)
uint_32 := float2int(326.99)
fmt.Printf("%d,%d\n", uint_8, uint_32)
} - 结果:
100,327
- 代码: