微信企业号可以做微网站吗宿州建设银行网站
news/
2025/10/8 20:46:11/
文章来源:
微信企业号可以做微网站吗,宿州建设银行网站,seo网站推广策略,福建 专业网站建设公司对数值进行调整在Python中对整数和浮点数进行数字计算是很容易的。但是#xff0c;如果你需要对分数#xff0c;数组或者日期和时间进行计算#xff0c;这就会稍微复杂点。对于简单的取整操作#xff0c;我们可以使用内建的round(value, ndigits)函数就可#xff0c;举个例…对数值进行调整在Python中对整数和浮点数进行数字计算是很容易的。但是如果你需要对分数数组或者日期和时间进行计算这就会稍微复杂点。对于简单的取整操作我们可以使用内建的round(value, ndigits)函数就可举个例子 round(1.23, 1)
1.2round(-1.23, 1)
-1.2round(1.39, 1)
1.4round(3.1415926535, 3)
3.142
当某个值恰好等于两个整数间的一半的时候取整操作会取到离这个值最近的那个偶数上并且传递给round()的参数ndigits可以是负数在这种情况下会相应的取整邻近位数上举个例子 a 31415926535897932626round(a, -1)
31415926535897932630round(a, -1)
31415926535897932630round(a,-2)
31415926535897932600round(a, -9)
31415926536000000000
但是注意在这种情况下只会输出0.0 a -3.1415926535897932626round (a, -1)
-0.0因为后面那个-1实际上就是取的-3四舍五入就等于0了注意在对值进行输出的时候不要把取整和格式化的操作混为一谈。如果将数值以固定的位数输出一般情况下是用不上round()的相反我们只要在格式化时指定所需要的精度就可以了。此外不要采用对浮点数进行取整的方式来进行修正精度上的问题。对于大部分的涉及浮点数的应用程序来说一般来讲都没必要但是如果遇到避免出现误差的行为非常重要那么就可以考虑使用decimal模块至于四舍五入的运算在IDE上怎么写可以参考下这个def round_num():print(round(1.23, 1))print(round(1.27, 1))print(round(-1.27, 1))print(round(1.25361,3))# 舍入数为负数a 1627731print(round(a, -1))print(round(a, -2))print(round(a, -3))# 格式化输出x 1.23456print(format(x, 0.2f))print(format(x, 0.3f))print(value is {:0.3f}.format(x))# 不要自以为是的用round去修正一些精度问题a 2.1b 4.2c a bprint(c)c round(c, 2) # Fix result (???)print(c)if __name__ __main__:round_num()执行精确的小数计算关于浮点数有一个所有人都直到的问题就是它们无法精确表达所有的十进制小数位并且甚至连简单的数学计算也会引入微小的误差。这些误差实际上是由底层CPU的浮点运算单元和IEEE 754浮点算术标准的一种特性由于Python的浮点类型保存的数据采用的是原始表示形式因此这种误差是无法避免的除非你不用float实例。我们目前能做的就是通过decimal模块来加强精度但这样会牺牲掉一些性能 from decimal import Decimala Decimal(1.15)b Decimal(1.17)a b
Decimal(2.32)print(a b)
2.32(a b) Decimal(2.32)
True
Decimal对象能够以任何你所期待的方式来工作这个模块的主要功能就是允许控制计算过程中的各个方面这包括数字的位数和四舍五入。代码示例from decimal import Decimal
from decimal import localcontext
import mathdef acc_deciamal():a 4.2b 2.1print(a b)print((a b) 6.3)# 使用decimal模块a Decimal(4.2)b Decimal(2.1)print(a b)print((a b) Decimal(6.3))a Decimal(1.3)b Decimal(1.7)print(a / b)with localcontext() as ctx:ctx.prec 3print(a / b)nums [1.23e18, 1, -1.23e18]print(sum(nums))print(math.fsum(nums))if __name__ __main__:acc_deciamal()对数值进行格式化输出如果我们需要对一个单独的数值做格式化的输出就像我前几章讲的那样直接使用内奸函数format()输出就可def format_number():x 1234.56789# Two decimal places of accuracyprint(format(x, 0.2f))# Right justified in 10 chars, one-digit accuracyprint(format(x, 10.1f))# Left justifiedprint(format(x, 10.1f))# Centeredprint(format(x, ^10.1f))# Inclusion of thousands separatorprint(format(x, ,))print(format(x, 0,.1f))print(format(x, e))print(format(x, 0.2E))# stringsprint(The value is {:0,.2f}.format(x))print(format(x, 0.1f))print(format(-x, 0.1f))swap_separators {ord(.): ,, ord(,): .}print(format(x, ,).translate(swap_separators))if __name__ __main__:format_number()对数值做格式化输出通常都是很直接的上面的例子既可以用于浮点型整数也可以用于decimal模块中的Decimal对象。当需要限制数值是位数的时候数值会根据round()函数的规则来进行取整。注意对数值加上千位分隔符的格式化操作并不是特定于本地的环境的当然如果你需要应该可以用local模块的函数以及用字符串的translate()方法来交换分隔符。参考书目《Python CookBook》作者【美】 David Beazley, Brian K. JonesGithub地址yidao620c/python3-cookbookgithub.com
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931932.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!