首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >四舍五入浮动到最近的10

四舍五入浮动到最近的10
EN

Stack Overflow用户
提问于 2013-10-17 16:01:17
回答 4查看 54.9K关注 0票数 9

我试着把两个浮点数的公式整整,但是它输出的是不带小数的,它只是把它舍入最近的数,例如21.3到21。当我加上",2“时,应该把它设为最接近的10圈。

新代码:

代码语言:javascript
复制
def add(op1,op2):
    result = int(round(op1 + op2, -1))
    print("")
    print ("Output: %d + %d = %d" % (op1, op2, result))

输出:

代码语言:javascript
复制
Output: 10 + 10 = 20

新的

输出:

代码语言:javascript
复制
Output: 10.3 + 10.9 = 21.0

代码:

代码语言:javascript
复制
def add(op1,op2):
    result = int(round(op1 + op2, 1))
    print("")
    print ("Output: %0.1f + %0.1f = %0.1f" % (op1, op2, result))
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-17 16:15:54

下面是如何将一个数字相加到最近的十分之一:

代码语言:javascript
复制
>>> round(21.3331, 1)
21.3

下面是如何打印带有一个小数点的浮点数:

代码语言:javascript
复制
>>> print "%.1f" % (21.3331,)
21.3

请注意,如果使用%d执行此操作,它将被打印为四舍五入到最接近的整数:

代码语言:javascript
复制
>>> print "%d" % (21.3331,)
21

有关字符串格式操作文档格式如何工作的更多信息,请参见%

票数 20
EN

Stack Overflow用户

发布于 2014-09-22 01:50:10

这是最简单的一个。

roundf(1.345 * 100) / 100

你只需把它乘以100,再除以100,这就使数值保持在小数点后的2位。这应该比将其转换为字符串和返回更有效。

票数 2
EN

Stack Overflow用户

发布于 2013-10-17 16:18:37

你正在转换为int。这意味着您的结果是一个intints没有小数部分。此外,"%d"意味着格式为int,因此在打印之前它将隐式转换为int。在格式字符串中使用"%f"

代码语言:javascript
复制
def add(op1,op2):
    result = round(op1 + op2, 1)
    print("")
    print ("Output: %0.1f + %0.1f = %0.1f" % (op1, op2, result))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19431674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档