使用Python去除小数点后面多余的0问题

目录
  • Python去除小数点后面多余的0
  • Python去掉数字前面的0

Python去除小数点后面多余的0

最近在用Python 写导入数据的脚本。百度 必应搜了好多,都没有一个完美解决的。

在这里还是要吐槽一下百度对于这些真的很垃圾。

后来FQ谷歌了一下,第一个词条出来就找到办法了。

这里我搬过来整理一下,以及使用时候可能遇到的问题。希望对看到这篇文章的读者有用

首先引入头文件

from decimal import Decimal

举个例子

数字 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的问题了

Python去掉数字前面的0

有时候文件的编号是在前面自动补0生成的,而当我们需要读取这些文件名对应的编号时,前面的0会给判断语句造成麻烦,那么如何将前面的0去掉呢?

因为Python默认在转换成字符串时忽略前面的0,因此可以通过格式转换的方法实现去0:

>>> str(000001)
'1'
>>> int(str(000001))
1

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 如何将浮点数尾部无效0去掉和无效的‘.’号

    方法一: a = 12.12300 #结果要求为12.123 b = 12.00 #结果为12 c = 200.12000 #结果为200.12 d = 200.0 #结果为200 print 'a==>' ,[ str (a), int (a)][ int (a) = = a] print 'b==>' ,[ str (b), int (b)][ int (b) = = b] print 'c==>' ,[ str (c), int (c)][ int (c) = = c] print

  • Python如何保留float类型小数点后3位

    目录 保留float类型小数点后3位 float 一.round() 二.'%.3f'%x 三.decimal 小数点后的位数 第一种方法 第二种方法 第三种方法 保留float类型小数点后3位 float 查询持仓数据,数字货币交易所一般给出的是float类型,且小数点十几位,为了展示便捷,只保留小数点后3位. float数据类型,保留小数点的方式有三种 一.round() >> x = 3.897654326 >> round(x, 3) 3.898 >> x =

  • python通过floor函数舍弃小数位的方法

    本文实例讲述了python通过floor函数舍弃小数位的方法.分享给大家供大家参考.具体分析如下: python中可以通过math库的floor函数来舍弃浮点数后面的小数位 import math print(math.floor( x )) 例如:x=1.2,返回1.0 其返回值为浮点数,如果希望返回整数,可以写成: import math #from jb51.net print(int(math.floor( x ))) 输出结果:1 希望本文所述对大家的Python程序设计有所帮助.

  • 使用Python去除小数点后面多余的0问题

    目录 Python去除小数点后面多余的0 Python去掉数字前面的0 Python去除小数点后面多余的0 最近在用Python 写导入数据的脚本.百度 必应搜了好多,都没有一个完美解决的. 在这里还是要吐槽一下百度对于这些真的很垃圾. 后来FQ谷歌了一下,第一个词条出来就找到办法了. 这里我搬过来整理一下,以及使用时候可能遇到的问题.希望对看到这篇文章的读者有用 首先引入头文件 from decimal import Decimal 举个例子 数字 100.2000 第一次 这么使用 Deci

  • Java使用正则表达式去除小数点后面多余的0功能示例

    本文实例讲述了Java使用正则表达式去除小数点后面多余的0功能.分享给大家供大家参考,具体如下: package test; /** * 去掉多余的.与0 * @author Hust * @Time 2011-11-7 */ public class TestString { public static void main(String[] args) { Float f = 1f; System.out.println(f.toString());//1.0 System.out.print

  • mysql中如何去除小数点后面多余的0

    select cast(2.12000 as decimal(9,2))结果 2.12 select cast(2.10000 as decimal(9,2)) 结果 2.1 select cast(2.00000 as decimal(9,2)) 结果 2

  • python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解

    在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入输出如下: input:我今天 赚了 10 个亿,老百姓very happy. output:我今天赚了10个亿,老百姓very happy. 代码 def clean_space(text): """" 处理多余的空格 """ match_regex = re.compile(u'[\u4e00-\u9fa5.

  • PHP实用函数分享之去除多余的0

    代码很简洁,也很简单,就不多废话了. 复制代码 代码如下: /**  * 去除多余的0  */  function del0($s)  {      $s = trim(strval($s));      if (preg_match('#^-?\d+?\.0+$#', $s)) {          return preg_replace('#^(-?\d+?)\.0+$#','$1',$s);      }       if (preg_match('#^-?\d+?\.[0-9]+?0+$

  • 使用Python去除字符串中某个字符的多种实现方式比较

    目录 1.如何去掉字符串中不需要的字符? 2.代码演示 总结 1.如何去掉字符串中不需要的字符? 实际案例: (1)过滤掉用户输入前后多余的空白字符:' nick2008@gmail.com ' (2)过滤某windows下编辑文本中的'\r':'hello world\r\n' (3)去掉文本中的unicode组合符号(调音):u'ní hǎo, chī fàn'(或 èěéēàǎā) 解决方案: 方法1:字符串strip(),lstrip(),rstrip()方法去掉字符串两端字符. 方法2

  • python去除文件中空格、Tab及回车的方法

    本文实例讲述了python去除文件中空格.Tab及回车的方法.分享给大家供大家参考,具体如下: 在最近的开发工作中,为了应付比赛赶进度,服务端的json文件都是人工写的,写完之后发现格式都是十分规整,易于人阅读的json,但是客户端请求不需要那些为了格式而在json里面添加的空格.tab.回车等等没用的字符,遂用python写一脚本,去除文件中的空格.回车.换行. 原json文件: { "amount" : "2", "content" : [

  • python去除扩展名的实例讲解

    获取不带扩展名的文件的名称: import os printos.path.splitext("path_to_file")[0] from os.path import basename # now you can call it directly with basename print basename("/a/b/c.txt") >>>base=os.path.basename('/root/dir/sub/file.ext') >&g

  • Python去除、替换字符串空格的处理方法

    个人想到的解决方法有两种,一种是  .replace(' old ',' new ')   第一个参数是需要换掉的内容比如空格,第二个是替换成的内容,可以把字符串中的空格全部替换掉. 第二种方法是像这样 str_1_data = ' a b c ' str_2_list = str_1_data.split() str_1 = '' for i in range(len(str_2_list)): #这里可以直接用 str_1.join(str2_list) str_1 += str_2_lis

  • python去除文件中重复的行实例

    python去除文件中重复的行,我们可以设置一个一个空list,res_list,用来加入没有出现过的字符行! 如果出现在res_list,我们就认为该行句子已经重复了,可以再加入到记录重复句子的list中. 如下代码: # -*- coding: UTF-8 -*- #程序功能是为了完成判断文件中是否有重复句子 #并将重复句子打印出来 res_list = [] #f = open('F:/master/master-work/code_of_graduate/LTP_data/raw_pla

随机推荐