刷题之旅-python or go(三):取近似值

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于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)
}

  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值