写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
Python:
基础知识:字符串操作之字符串分割,类型转换符号使用
str.split():字符串分割函数
通过指定分隔符对字符串进行切片,并返回分割后的字符串列表。
语法:
str.split(s, num)[n]
参数说明:
s:表示指定的分隔符,不写的话,默认是空格(’ ‘)。如果字符串中没有给定的分隔符时,则把整个字符串作为列表的一个元素返回。
num:表示分割次数。如果指定了参数num,就会将字符串分割成num+1个子字符串,并且每一个子字符串可以赋给新的变量。
[n]:表示选取第n个分片,n表示返回的list中元素下标,从0开始的。
demo:
x = input("请输入一个浮点数:")
# 定义一个求取近似数的函数
def approximate(x):
x1 = str(x).split(".", 1) # 以 “.”分割字符串,str.split(s,num)[n] s:指定的分割符,num:指定的分割字数,n:表示取第一个切片,以下标表示
ix0 = x1[0] # 取小数点分割符前边的数字
ix1 = x1[1][0] # 取 小数点后边的数字第一位
if eval(ix1) >= 5:
x1 = eval(ix0) + 1
else:
x1 = eval(ix0)
print(x1)
if __name__ == '__main__':
approximate(x)
GO:
基础知识:go语言strconv包字符串类型转换
strconv包提供了简单数据类型之间的类型转换功能。可以将简单类型转换为字符串,也可以将字符串转换为其它简单类型。
这个包里提供了很多函数,大概分为几类:
字符串转int:Atoi()
int转字符串: Itoa()
ParseTP类函数将string转换为TP类型:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。因为string转其它类型可能会失败,所以这些函数都有第二个返回值表示是否转换成功
其它类型转string类型:FormatBool()、FormatFloat()、FormatInt()、FormatUint()
AppendTP类函数用于将TP转换成字符串后append到一个slice中:AppendBool()、AppendFloat()、AppendInt()、AppendUint()
还有其他一些基本用不上的函数,见官方手册:go doc strconv或者https://golang.org/pkg/strconv/。
demo:
package main
import (
"fmt"
"strconv"
"strings"
)
func GetAboatInt(floatStr string) int {
parts := strings.Split(floatStr, ".")
//fmt.Println(parts)
//preInt, Deci := parts[0], parts[1]
num, _ := strconv.Atoi(parts[0])
if decFirst, _ := strconv.Atoi(parts[1]); decFirst >= 5 {
num++
}
return num
}
func main() {
var float_str string
fmt.Scan(&float_str)
num_int := GetAboatInt(float_str)
fmt.Println(num_int)
}