首页 > 试题广场 >

取近似值

[编程题]取近似值
  • 热度指数:571274 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。

数据范围:保证输入的数字在 32 位浮点数范围内

输入描述:

输入一个正浮点数值



输出描述:

输出该数值的近似整数值

示例1

输入

5.5

输出

6

说明

0.5>=0.5,所以5.5需要向上取整为6   
示例2

输入

2.499

输出

2

说明

0.499<0.5,2.499向下取整为2   
先乘以10,在除以10取余,就得到小数点后一位了
while True:
    try:
        a=float(input())
        if a*10%10 >= 5:
            print(int(a//1+1))
        else:
            print(int(a//1))
    except:
        break
发表于 2022-07-06 21:06:28 回复(0)
f = round(float(input()))
print(f)
发表于 2021-07-08 11:28:23 回复(0)

f = input()
if not f.startswith('-'):
    int_num =  f.split('.')[0]
    point_num = f.split('.')[1]
    first_num = point_num[:1]
    if int(first_num) >= 5:
        print(int(int_num)+1)
    else:
        print(int_num)

发表于 2021-07-03 07:55:06 回复(0)
#两种方法
#num  = raw_input()
#num = float(num)+0.5
#print int(num)
num  = raw_input()
num = float(num)
print int(round(num))
发表于 2021-06-26 13:05:02 回复(0)
"""取近似值(python)"""
string_1 = input("")
list_a = string_1.split(".")
#["22","499"]
if int(list_a[1][0]) >= 5:
    num1 = int(list_a[0]) + 1
    print(num1)
elif int(list_a[1][0]) < 5:
    num2 = int(list_a[0])
    print(num2)
发表于 2021-06-04 13:49:34 回复(0)
fnum = input()
fstr = fnum.split('.')
if int(fstr[1][0]) >= 5:
    print(int(fstr[0])+1)
else:
    print(fstr[0])
发表于 2021-05-25 14:59:48 回复(0)
def func():  print(int(float(input().strip())+0.5)) if __name__ == '__main__':
    func()

                                                                                    
发表于 2021-05-22 18:00:12 回复(0)
print(int(float(input())+0.5))
发表于 2021-05-17 20:07:46 回复(0)
a=input()
a=str(float(a))
b=a.split('.')
bk=b[1]
if int(bk[0])>=5:
    c=int(b[0])+1
else:
    c=int(b[0])
print(c)
发表于 2021-05-13 22:56:32 回复(0)
用round() 4结尾都变成4 ,那要round()函数有何用?
float()+0.001也不行,因为如果是0.49999其实不到5,结果会往上抛1,
只能float()+0.5 然后用int()强制保留前面的整数。
发表于 2021-05-09 22:19:50 回复(0)
import sys

# 读取浮点数
f = float(input())

# 浮点转int时,会丢弃小数位
print(int(f+0.5))

编辑于 2021-05-05 22:24:13 回复(0)
print(int(float(input())+0.5))
发表于 2021-04-13 15:54:52 回复(0)
while 1:
    try:
        print(int(float(input())+0.5))
    except:
        break

发表于 2021-04-04 21:53:58 回复(0)

data=float(input())
data_list=math.modf(data) if data_list[0]>=0.5: print(math.ceil(data)) else: print(math.floor(data))

发表于 2021-03-30 16:08:26 回复(0)
num = float(input())
res = round(num)

if num>res:
    if num-res>=0.5:
        print(res+1)
    else:
        print(res)
else:
    print(res)


编辑于 2021-03-28 12:33:07 回复(0)
def round_nums(a):
    if a - int(a) >= 0.5:
        output = int(a) + 1
    else:
        output = int(a)
    return output

while True:
    try:
        a = float(input())
        print(round_nums(a))
    except EOFError:
        break

编辑于 2021-03-24 13:41:27 回复(0)
a = float(input())
b = a*10
c=0
if b%10>=5:
    c=int(a)+1
else:
    c=int(a)
print(c)
发表于 2021-03-18 20:35:40 回复(0)
輸入的浮點數加0.5后與其整數部分+1比較
if 大於等於:
    整數部分+1
else:
    整數部分
```
num1 = float(input())
if num1 > 0:
    _int = int(num1)
    if num1 + 0.5 < _int + 1:
        print(_int)
    else:
        print(_int + 1)
```
发表于 2021-03-08 10:33:52 回复(0)
print(int(float(input()) + 0.5))

发表于 2021-03-02 22:52:52 回复(0)
num = float(input())
def fun(v):
    if v - int(v) >= 0.5:
        return int(v) + 1
    else:
        return int(v)

print(fun(num))
额,写得有点复杂了。
也是掉进了round函数的坑,4.5居然是4
发表于 2021-02-25 01:12:46 回复(0)

问题信息

难度:
112条回答 73657浏览

热门推荐

通过挑战的用户

查看代码