python 保留小数位数的问题

问题描述:

python 保留小数位数的问题
我的意思是这样的,对于一个小数,我想一共保留8位,比如我输入一个小数a,是这样的:123.456789,那么就保留成123.45679,如果我输入1.23456789,那就保留成1.2345679,也就是说,整数位加小数位一共是8位,print("%8f"%a)我已经用过了,没用的.
1个回答 分类:综合 2014-11-20

问题解答:

我来补答
f = lambda x, n: round(x, n - len(str(int(x))));
定义了一个方法f,用来实现你所说的功能.
输入:
f(123.456789, 8)
输出:
123.45678
输入:
f(1.23456789, 8)
输出:
1.2345679000000001
f接收2个参数,第一个参数是要求有效位数的数字,第二个参数是设置有效位数.第二次输出中的数字不够准确,这跟python处理小数的方式有关,如果想要准确的数字可以使用python decimal类.或者用python3k
再问: 你这个方法当然可行,可我想问有没有很简单很简单的方式,类似于基本的输入输出那种。不是我非要这样,而是,老师现在讲的非常基础,肯定不是用这种方法的,肯定是非常基本的方法,我们用的是python 3.1.2。
再答: 这已经是很简单很简单的方法了,只用了一行语句就完成了功能,还有比这更简单的么。方法是否复杂取决于你要实现的功能本身。仔细想一下,你的功能并不是原子级的,而且python也没有内建方法来实现这种功能,只能自己写函数。另外,你们为什么要学习的python3.1呢,这是一个很尴尬的版本啊
 
 
展开全文阅读
剩余:2000
上一页:ghhhhh
下一页:概括每段段意