python小数 – 使用ROUND_HALF_UP舍入到最接近的整数美元(无分钱)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python小数 – 使用ROUND_HALF_UP舍入到最接近的整数美元(无分钱),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1292字,纯文字阅读大概需要2分钟。
内容图文
![python小数 – 使用ROUND_HALF_UP舍入到最接近的整数美元(无分钱)](/upload/InfoBanner/zyjiaocheng/742/36b3184d5a514d1086eb6592762e795a.jpg)
我正在尝试使用Decimal.quantize()来实现以下目标: –
对于任何金额,表示为默认精度的python小数,我想使用decimal.ROUND_HALF_UP对其进行舍入,以便在舍入后没有分数.
例如,给定1.25,我试图获得1.00(表示没有分数)
鉴于1.49我试图获得1.00
鉴于1.50我试图获得2.00
鉴于1.87我试图获得2.00
鉴于2.00我试图获得2.00
所以美分有两个范围 – 0美分到49美分;和50美分到99美分.对于高达49美分的分数,我想要向下舍入,50美分以上,我想要向上舍入.我试图获得两个有效小数位的结果(总是00).
我在这里没有任何负面价值.如何围绕我的美元来获得我想要的金额?还有除量化之外的其他选择吗?
解决方法:
我会尝试以下内容:
>>> from decimal import Decimal, ROUND_HALF_UP
>>> x = Decimal('2.47')
>>> x.quantize(Decimal('1'), rounding=ROUND_HALF_UP).quantize(Decimal('0.01'))
Decimal('2.00')
这里的关键部分是第一个调用:x.quantize(十进制(‘1’),舍入= ROUND_HALF_UP)使用给定的舍入模式将x四舍五入到最接近的整数.第一个参数(十进制(‘1’))确定舍入结果的指数,因此如果用例如十进制(‘0.1’)替换它,它将舍入到最接近的十分之一,而如果用十进制替换它(‘1e1’)它将舍入到最接近的10的倍数.
然后第二个量化调用只是将额外的两个小数位放回来,这样你就会得到十进制(‘2.00’)而不是十进制(2).
如果需要,您还可以使用to_integral_value方法代替第一个量化调用:
>>> x.to_integral_value(rounding=ROUND_HALF_UP).quantize(Decimal('0.01'))
Decimal('2.00')
我看不出任何有理由偏爱另一种解决方案.
内容总结
以上是互联网集市为您收集整理的python小数 – 使用ROUND_HALF_UP舍入到最接近的整数美元(无分钱)全部内容,希望文章能够帮你解决python小数 – 使用ROUND_HALF_UP舍入到最接近的整数美元(无分钱)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。