python2.7除法结果过长不正确,Python2.7 的除法

做 udacity 项目的时候发现 python 的除法好像比其他数学运算复杂一点。整理了下几种可能的情况。

1. 如果除数和被除数都是整数,无论数学结果如何,得到的就是整数

>>> x = 15/30 #math: 0.5

>>> print x

0

>>> x = 3/5 # math 0.6

>>> print x

0

数学上答案明明应该是是0.5,出来的结果却是0。试了几次发现,python 2.7 里,如果分母和分子都是整数,得到的结果就是整数; 而且得到的整数不是四舍五入后的结果,而是无论小数点后的数值如何,直接抹去。(强调python 2.7是因为python3 这部分有所不同,下面会提到。)

2. 只要除数和被除数中有一个是浮点数,无论数学结果如何,得到的就是浮点数

>>> x = 15./30

>>> print x

0.5

>>> y = 30./30

>>> print y

1.0

3. from __future__ import division, 区分 "/" 和"//"

/ : 不管除数和被除数种是否有浮点数,得到的结果都是浮点数;

//: 不管除数和被除数种是否有浮点数,得到的结果都是整数(小数点之后的位数直接抹去);

from __future__ import division

x = ((x-min(arr))/ (max(arr)- min(arr)))

print x

# 不管 min(arr) 是整数还是浮点数,得到的结果都是浮点数

x = ((x-min(arr))// (max(arr)- min(arr)))

print x

# 不管 min(arr) 是整数还是浮点数,得到的结果都是整数(如果有小数点的话小数点之后的

还需要注意的是,在pyhton3中,"/"表示的就是float除,不需要再引入模块,就算分子分母都是int,返回的也将是浮点数 ---python中的float除法和整除法

4. 对得到的浮点数四舍五入: round()

虽然得到的结果可能是浮点数,但如果位数太多也会造成麻烦,这个时候就需要祭出 round() 四舍五入了。

round( x [, n] )

x 是输入值,n 是返回的小数点位数。

round(80.23456, 2) : 80.23

round(100.000056, 3) : 100.0

round(-100.000056, 3) : -100.0

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,有多种方法可以计算除法结果并保留小数点后2位。以下是三种常用的方法: 方法1:使用round函数 ```python a = 1 b = 3 result = round(a / b, 2) print(result) ``` 这种方法使用了round函数来对除法结果进行四舍五入,并指定保留2位小数。 方法2:使用format函数 ```python a = 1 b = 3 result = format(float(a) / float(b), '.2f') print(result) ``` 这种方法将除法操作数转换为浮点数,然后使用format函数将结果格式化为保留2位小数的字符串。 方法3:使用字符串格式化 ```python a = 1 b = 3 result = '%.2f' % (a / b) print(result) ``` 这种方法使用字符串格式化操作符%来将除法结果格式化为保留2位小数的字符串。 无论使用哪种方法,都可以得到保留小数点后2位的除法结果。\[1\]在Python中,除法操作默认返回浮点数结果,因此不需要进行额外的类型转换。\[2\] #### 引用[.reference_title] - *1* [Python除法保留两位小数点(三种方法实现)](https://blog.csdn.net/HuaCode/article/details/79305982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python保留小数点位数详解](https://blog.csdn.net/m0_73678116/article/details/129837932)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值