python3 实现除法结果为整数
作者:自由的小白 发布时间:2023-06-27 20:08:22
问题描述
101/100,想要的结果是1,但是算出来的结果是1.01
解决方案
101 // 100
结果图
补充:python2 与 3:一般除法、除法取整、除法取余、精确减法与精确除法
python2
python2除法
python2的除法,与c语言除法类似,两个整数相除结果一定是整数,除数与被除数有一个是浮点数,结果就是浮点数。因此当两个整数相除,结果又有小数时,由于结果是整数,所以小数部分会被省略,针对这种情况,要实现真正的除法,除数与被除数至少有一个应改为浮点数。(貌似python2.7开始,除法和python3除法一样了,没有仔细考究)
a = 3
b = 2
print a/b
print float(a)/b
print a/float(b)
print float(a)/float(b)
# 结果
1
1.5
1.5
1.5
python2除法取整
加一个int(),进行强制类型转换即可。
a = 4.5
b = 3
print a/b
print int(a/b)
# 结果
1.5
1
python2除法取余
利用%操作即可。
a = 5.5
b = 3
print a % b
# 结果
2.5
python3
python3除法
python3的除法就直接使用"/",就可以了,不存在python2的情况
a = 3
b = 2
print(a/b)
# 结果
1.5
python3除法取整
利用"//"操作
a = 5.5
b = 2
print(a//b)
# 结果
2.0
python3除法取余
利用"%"操作
a = 5.5
b = 2
print(a%b)
# 结果
1.5
python3精确减法与精确除法
我们先看看下面的输出
a = 0.9
b = 1
print(b-a)
print((b-a)/100)
print((0.1)/100)
# 结果
0.09999999999999998
0.0009999999999999998
0.001
python计算要把数字先转为二进制,因为浮点数以二进制形式表示时的有穷性(利用乘K取余法,0.9的二进制无限延展),会导致计算误差。下面摘自python文档原话。
On most machines today, floats are approximated using a binary fraction with the numerator using the first 53 bits starting with the most significant bit and with the denominator as a power of two.
这不是只有python才有的bug,也不是你代码的bug,所有的编程语言都会有这个问题,当然可能很多编程语言会使用某些机制来规避这种显示。回到该blog的例子,0.9的二进制表示如下:
0.1110011001100110011001100110011001100110011001100110011
1-0.9的二进制表示为:
0.0001100110011001100110011001100110011001100110011001100
转化过来就是0.09999999999999998
这时候为了实现精确运算,可以使用类decimal。
import decimal
decimal.getcontext().prec = 10 # 取小数点后精度到第10位
a = 0.9
b = 1
print(decimal.Decimal(b)-decimal.Decimal(a))
print((decimal.Decimal(b)-decimal.Decimal(a))/100)
print((0.1)/100)
# 结果
0.1000000000
0.0010000000
0.001
当然,直接使用近似函数round()也是可以的。
a = 0.9
b = 1
print(round(b-a, 10))
print(round((b-a)/100, 10))
print(round((0.1)/100, 10))
# 结果
0.1
0.001
0.001
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/zzzzlei123123123/article/details/97813082
猜你喜欢
- 一般跟踪训练的ground_truth的数据保存在文本文文件中,故每一行的数据为一张图片的标签数据,这个时候读取每一张图片的标签,具体实现如
- 本篇我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数、学习读写文件的方法,并尝试函数式编程
- 一、什么是shutilshutil可以简单地理解为sh + util ,shell工具的意思。shutil模块是对os模块的补充,主要针对文
- 在机房收费系统中,有几处这样的情况:起始日期和终止日期,相信聪明的你肯定可以想象出为什么要有两个日期控件!是的,就是从一张表中查找出在这两个
- 如下所示:>>> import numpy as np>>> a = np.array([[1, 2,
- 你用过css么?当然,我是指你喜欢做网页的话,用过?很好,那你用过它的特效么?没有?那请跟我来。让我先
- strConnString = "driver={MySQL ODBC 3.51 
- <%dim total(7,1) total(1,0)="中国经营报"
- 今天写了一个获取当前公网ip并且自动断开宽带连接的文件,和大家分享下。这个文件的具体用途大家懂的,可以尽管拿去用,不过目前只适用于Windo
- JavaScript使用if () { ... } else { ... }来进行条件判断。例如,根据年龄显示不同内容,可以用if语句实现如
- 前言由于数据库每天都用来存储越来越多的信息,因此这些也是每个Django项目中的关键组件。 因此了解它们的工作方式非常重要。当然,我无法解释
- 面对网络不稳定,页面更新等问题,很可能出现程序异常的问题,所以我们要对程序进行一些异常处理。大家可能觉得处理异常是一个比较麻烦的活,但在面对
- 直接在table标签中设置下不就行了吗?这是静态的,如果要动态设置你会吗?function com_onresize(){var conte
- PHP hex2bin() 函数实例把十六进制值转换为 ASCII 字符:<?php echo hex2bin("48656
- 在seclists中看到一个很惊人的thread:http://seclists.org/oss-sec/2012/q2/493MySQL爆
- 本文实例讲述了python采集百度百科的方法。分享给大家供大家参考。具体如下:#!/usr/bin/python# -*- coding:
- 没注意到MooTools的Cookie类在写的时候自己做了一次encode,在读的时候做了一次decode,在一般的情况下,这个不会有什么问
- 本文实例总结了Python中numpy模块常见用法。分享给大家供大家参考,具体如下:import numpy as nparr = np.a
- 1. 列表1.1 列表的定义List(列表) 是Python 中使用最频繁的数据类型,在其他语言中通常叫做数组专门用于存储一串 信息列表用[
- 数据库自增 ID搞一个数据库,什么也不干,就用于生成主键。你的系统里每次得到一个 id,都需要往那个专门生成主键的数据库中通过插入