精华内容
下载资源
问答
  • Python去除小数点后面多余的0

    千次阅读 2021-07-04 09:27:29
    最近做项目遇到一个问题,数据全部要求deciaml格式,如果...可以直接当float用,如果想要换成string类型 就在用str() 包一下上面得到的结果就行啦,这个就不解释了 这样就解决标题所说的去除小数点后面多余的0的问题了

    最近做项目遇到一个问题,数据全部要求deciaml格式,如果是6位小数就导致1.00000这种情况的存在,百度了很多,这里吐槽一下百度真的不行。最后查到了一个方法,这里记录一下

    举个例子 数字 100.2000
    第一次 这么使用 Decimal(‘100.2000’).normalize() 得到的结果 100.2
    是想要的结果。

    可是 normalize()有个问题,如果是100.00000 同样
    Decimal(‘100.0000’).normalize()得到的结果就是1E+2
    那么这种情况怎么办呢,就是换个方法 使用 “ to_integral
    ”,像这样:Decimal(‘100.000’).to_integral() 得到结果是100,这才是想要的结果。

    那怎么才能更好的两种兼容呢,可以先做一个判断 在去除多余0之后 是否相等:

    >>>Decimal('100.2000') == Decimal('100.2000').to_integral()
    False
    >>>Decimal('100.0000') == Decimal('100.0000').to_integral()
    True

    根据这个判断 可以自己写一个function

    def remove_exponent(num):
        return num.to_integral()
    if num == num.to_integral() else num.normalize()

    最后调用这个function 这里同样举上面几个例子得到的结果

    >>> remove_exponent(Decimal('100.2000'))
    Decimal('100.2')
    >>> remove_exponent(Decimal('100.0000'))
    Decimal('100')
    >>> remove_exponent(Decimal('0.2000'))
    Decimal('0.2')

    这里输出是Decimal 类型 是因为 调用的方法里面就是这个类型的。可以直接当float用,如果想要换成string类型
    就在用str() 包一下上面得到的结果就行啦,这个就不解释了

    这样就解决标题所说的去除小数点后面多余的0的问题了

    展开全文
  • 如果数据是有可能带小数的,但是如果是整数就不想显示小数点,如何实现 例: 输入:10.1, 10.0,10.200 输出:10.1, 10, 10.2 使用format方法对字符串进行格式化 for i in [ 12.12300 , 12.00 , 200.12000 , 200.0 ]:...

    如果数据是有可能带小数的,但是如果是整数就不想显示小数点,如何实现
    例:
    输入:10.1, 10.0,10.200
    输出:10.1, 10, 10.2

    使用format方法对字符串进行格式化

    for  i  in  [ 12.12300 ,  12.00 ,  200.12000 ,  200.0 ]:
    	print('{:g}'.format (i))
    

    输出:
    12.123
    12
    200.12
    200

    展开全文
  • Python删除小数点后多余的0

    千次阅读 2020-09-24 11:29:30
    文章目录 问题描述 解决方案 解决方案2 参考文献 问题描述 删除小数点后多余的0 输入 12.22 12.20 12.0 输出 12.22 12.2 12 解决方案 判断类型并结合字符串的rstrip() def delete_extra_zero(n): '''删除小数点后...

    问题描述

    删除小数点后多余的0

    输入

    12.22
    12.20
    12.0
    

    输出

    12.22
    12.2
    12
    




    解决方案

    判断类型并结合字符串的rstrip()

    def delete_extra_zero(n):
        '''删除小数点后多余的0'''
        if isinstance(n, int):
            return n
        if isinstance(n, float):
            n = str(n).rstrip('0')  # 删除小数点后多余的0
            n = int(n.rstrip('.')) if n.endswith('.') else float(n)  # 只剩小数点直接转int,否则转回float
            return n
    
    
    if __name__ == '__main__':
        print(delete_extra_zero(12.22))  # 12.22
        print(delete_extra_zero(12.20))  # 12.2
        print(delete_extra_zero(12.0))  # 12
        print(delete_extra_zero(12))  # 12
        print(delete_extra_zero(120))  # 120
    




    解决方案2

    感谢 YnagShanwen 提供的方案

    def delete_extra_zero(n):
        """删除小数点后多余的0"""
        n = '{:g}'.format(n)
        n = float(n) if '.' in n else int(n)  # 含小数点转float否则int
        return n
    
    
    if __name__ == '__main__':
        print(delete_extra_zero(12.22))  # 12.22
        print(delete_extra_zero(12.20))  # 12.2
        print(delete_extra_zero(12.02))  # 12.02
        print(delete_extra_zero(12.0))  # 12
        print(delete_extra_zero(12))  # 12
        print(delete_extra_zero(120))  # 120
    




    参考文献

    1. python中输出时如何省略小数末位的零?
    2. 格式字符串语法 — Python文档
    展开全文
  • 目前用过最方便的: %例如:result为一个list,为result中每个值保留小数点后4位。result = [("%.4f" % i) for i in result]Python 3.X对于浮点数默认提供17位数字的精度。关于单精度和双精度:单精度型float双精度...

    目前用过最方便的: %

    例如:result为一个list,为result中每个值保留小数点后4位。

    result = [("%.4f" % i) for i in result]

    Python 3.X对于浮点数默认提供17位数字的精度。

    关于单精度和双精度:

    单精度型float

    双精度型double。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

    format

    "{0:.2f}".format(12345.67890)

    result: '12345.68'

    函数 round ceil floor

    a. round(num,x)

    如果只有一个数作为参数round(num),返回一个最靠近的整数。如果出现.5,两边的距离都一样,round()取偶数。

    round(3.245)

    3

    round(3.545)

    4

    如果有两位参数,则第二位为位数控制,如果最后一位是5,那么倒数第二位是奇数:舍弃,是偶数:进一。

    >>> round(3.235, 2)#5前是3,5舍弃

    3.23

    >>> round(3.245, 2)#5前面是4,4进一=5

    3.25

    b. math模块的ceil(x)

    取大于等于x的最小整数。

    c. math模块的floor(x)

    取小于等于x的最大整数。

    numpy

    可以通过 np.set_printoptions 函数实现打印出来的位数控制。

    参数:

    precision 控制输出精度,

    linewidth 控制输出宽度。

    e.g

    np.set_printoptions(linewidth=90)

    Pandas

    控制台打印时显示的2位小数:

    pd.set_option('precision', 2)

    或者整体

    df.round(2)

    展开全文
  • Winform分页控件设计界面: 控件代码: using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...iPhone 丢失http://www.appvv.com/zhuanti/iccid/ 第一步:iPhone丢失... 第二...
  • python2 中使用 / 做除法的时候,没有小数点,所以如果要保留小数点的话,需要导入一个包 from __future__ import division 在python3中,一个算数表达式中遇到除法时,有两种不同的除法方式可以选择,分别是/ ...
  • 小数点后取2位(四舍五入)的方法方法一:round()函数其实这个方法不推荐大家使用,查询资料发现里面的坑其实很多,python2和python3里面的坑还不太一样,在此简单描述一下python3对应的坑的情况。a = 1.23456b = ...
  • 1. 就是1.0 optimizer = torch.optim.SGD([w1, w2, b1, b2], 1.) 这里的1.就是1.0 如果本应是(a,b,c)写作(3.,) 那就是(3.0,0.0,0.0)
  • format (i)) 补充:Python 只有1%的程序员搞懂过浮点数陷阱 稍有标题党味道,但内容纯干货,先从一个例子说起 >>> 0.1+0.2==0.3 False 当你第一次看到这个结果时可能会非常惊讶,原来还有个这么大的bug,再来看看...
  • Python将小数类型后面的0去掉

    千次阅读 2020-03-26 00:29:18
    一、 a = 1.230 #结果 1.23 b = 1.0 #结果 1 print [str(a), int(a)][int(a)==a] print [str(b), int(b)][int(b)==b] 二、 a = ‘{:g}’.format(a)
  • 小数点后取2位(四舍五入)的方法 方法一:round()函数 方法二:'%.2f' %f 方法 方法三:Decimal()函数 二.小数点后取2位(四舍五不入)的方法 方法一: 一....
  • 在使用Python3处理浮点数时会遇到处理精度的问题,例如: >>> a = 2019.9102 >>> b = 666.333 >>> a - b 1353.5772000000002 >>> a = 2019.0428 >>> b = 1011.0823 ...
  • 您可以使用正则表达式执行此操作:import...=\b|[^0-9])')b = rgx.sub('\2',a)其中b是从a中删除小数点后的尾零的结果.我们可以用一个不错的函数编写它:import retail_dot_rgx = re.compile(r'(?:(\.)|(\.\d*?[1-9]\...
  • Python不支持32bit的单精度浮点数。如果程序需要精确控制区间和数字精度,可以考虑使用numpy扩展库。Python 3.X对于浮点数默认的是提供17位数字的精度。关于单精度和双精度的通俗解释:单精度型和双精度型,其类型...
  • Python保留float类型小数点后3位

    万次阅读 多人点赞 2019-11-18 15:36:37
    查询持仓数据,数字货币交易所一般给出的是float类型,且小数点十几位,为了展示便捷,只保留小数点后3位。 float数据类型,保留小数点的方式有三种 一、round() >> x = 3.897654326 >> round(x, 3) 3...
  • 我现在正在学习Python(到目前为止我很喜欢它),并且制作了一个小的华氏/摄氏度转换器。在这是运行时的输出:Please enter the degrees in Fahrenheit or Celsius to convert: 3232.0 degrees Celsius is 89.6 ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Python 如何强制限定小数点位数利用''%.af''%b——其中 b 代表要限定的数字, a 代表要求限定小数点的位数,结果自动四舍五入。例:c = 1.264871331241212print("%.3f"%c)运行结果:1.265补充:Python Numpy数组格式...
  • 除数是小数时:先把除数变成整数,除数扩大到原来的多少倍,被除数也要扩大到原来的多少倍(即小数点也向右移动几位,位数不够的用0补),然后按照除数是整数的除法进行计算。计算小数除法,除到被除数的末尾仍有余数时,...
  • Python如何删除小数?

    2021-07-16 15:06:19
    I've found some other topics on this but I couldn't get it to ... Please pardon my naivety with Python.Berekening1 = 8.5Berekening2 = 8.1+4.8Berekening3 = 8*10Berekening4 = 3x = Berekening1 * Bereke...
  • 1.保留python除法中的小数点:  需要导入一个包: from __future__ import deviation 2. 对于array中多重的数组,转换为一个list,可以采用下列方法:  可以采用array.tolist()转换为list类型,可能出现[ [1]...
  • 2016-09-01 01:03连丽英 客户经理用java的正则吧,具体代码你搜一下就可以了,大概思路是包含数字开头小数点什么的。如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,140
精华内容 3,656
关键字:

python去掉小数点

python 订阅