写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
数据范围:保证输入的数字在 32 位浮点数范围内
输入一个正浮点数值
输出该数值的近似整数值
5.5
6
0.5>=0.5,所以5.5需要向上取整为6
2.499
2
0.499<0.5,2.499向下取整为2
package main import ( "bufio" "fmt" "os" ) func main() { input := bufio.NewScanner(os.Stdin) input.Scan() s := input.Text() var ans int for i := range s { if s[i] != '.' { ans *= 10 ans += int(s[i] - '0') } else { if s[i+1] >= '5' { ans++ } break } } fmt.Println(ans) }
package main import ( "fmt" // "bufio" // "os" // "strconv" ) func main() { var num float32 fmt.Scanf("%f", &num) if num-float32(int(num))<0.5 { fmt.Println(int(num)) }else{ fmt.Println(int(num)+1) } }
package main import "fmt" import "strconv" func main() { var str string fmt.Scan(&str) index := 0 nStr := "" for i := 0; i < len(str); i++ { if str[i] == '.' { index = i break } nStr += string(str[i]) } n, _ := strconv.Atoi(nStr) if str[index+1] >= '5' { fmt.Print(n + 1) } else { fmt.Print(n) } }
package main import ( "math" "fmt" ) func main() { var number float64 _, err := fmt.Scan(&number) if err != nil { fmt.Println(err) } fmt.Println(math.Round(number)) }好像没人用math包,不知道可不可以用math包啊。
package main import( "fmt" ) func main(){ var num float32 fmt.Scanln(&num) res := int(num * 10) if res % 10 >= 5{ fmt.Println(res/10 + 1) }else{ fmt.Println(res/10) } }
package main import ( "fmt" ) func main() { var num float32 fmt.Scanf("%f", &num) n := int(num) b := int(num * 10) % 10 if b >= 5 { n += 1 } fmt.Println(n) }
package main import ( "fmt" ) func main() { var res float32 fmt.Scan(&res) fmt.Println(int(res+0.5)) }