1. 整除,计算结果截取整数部分
func main() {
fmt.Println(1/2, 3/2, 5/2) //0 1 2 比如3/2=1.5,但是除完的结果是1.5,只要1把不要0.5 // 比如:2/3=0.6666667,只要0,不要0.6666667
fmt.Println(-1/2, -3/2, -5/2) //0 -1 -2
fmt.Println("~~~~~~~~~~~~~~~~~~~~~~~")
}
2.math.Ceil向上取整
fmt.Println(math.Ceil(2.01), math.Ceil(2.5), math.Ceil(2.8)) //3 3 3 //比2多一点,就向上取.所以2.01, 2.5, 2.8都是3
fmt.Println(math.Ceil(-2.01), math.Ceil(-2.5)) -2 -2
fmt.Println("~~~~~~~~~~~~~~~~~~~~~~~")

3.math.Floor向下取整
fmt.Println(math.Floor(2.01), math.Floor(2.5), math.Floor(2.8)) // 2 2 2
fmt.Println(math.Floor(-2.01), math.Floor(-2.5), math.Floor(-2.8)) //-3 -3 -3

4.math.Round元整.正负数向上四舍五入
fmt.Println(math.Round(2.01), math.Round(2.5), math.Round(2.8)) //2 3 3
fmt.Println(math.Round(-2.01), math.Round(-2.5), math.Round(-2.8)) //-2 -3 -3
fmt.Println(math.Round(0.5), math.Round(1.5), math.Round(2.5), math.Round(3.5)) //1 2 3 4
5.其它数值处理
func main() {
fmt.Println(math.Abs(-2.7)) // 绝对值
fmt.Println(math.E, math.Pi) // 常数
fmt.Println(math.MaxInt16, math.MinInt16) // 常量,极值
fmt.Println(math.Log10(100), math.Log2(8)) // 对数
fmt.Println(math.Max(1, 2), math.Min(-2, 3)) // 最大值、最小值
fmt.Println(math.Pow(2, 3), math.Pow10(3)) // 幂
fmt.Println(math.Mod(5, 2), 5%2) // 取模
fmt.Println(math.Sqrt(2), math.Sqrt(3), math.Pow(2, 0.5)) // 开方
}

6.标准输入
// Scan从控制台上读取以空白分割的值
func main() {
var s1, s2 string //s1,s2,没赋值,用零值
n, err := fmt.Scan(&s1, &s2) //&取s1的内存,把输入的值赋值给s1,scan返回2个值,n:表示输入几个数,一个是err,如果err != nil,err里有东西
if err != nil { //如果err有值,不等于空,那就是有错误
panic(err)
}
fmt.Println(n)
fmt.Printf("%T %[1]s %T %[2]s \n", s1, s2)
}
6.1 标准输入时候,如果语句中,需要重复用同一个变量.那么,把变量放在最上面声明,然后,在语句中不断给变量重新赋值

6.2多个标准输入,多输入了,缓存问题

6.3 如果不判断 err,并且输入错误,为了防止程序崩溃,会使用零值
func main() {
var i3, i4 int
fmt.Println("输入2个int:")
n, err = fmt.Scan(&i3, &i4)
// if err != nil {
// panic(err)
// }
fmt.Printf("%T %[1]d %T %[2]d", i3, i4)
}
