最近做项目遇到一个问题,数据全部要求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的问题了

Python去除小数点后面多余的0相关推荐

  1. sqlserver55555_sqlserver把小数点后面多余的0去掉

    Sql中想把小数点后多余的0去掉,怎么办? select 5000/10000.0 --想变成0.5 select 5500/10000.0 --想变成0.55 select 5550/10000.0 ...

  2. sqlserver把小数点后面多余的0去掉

    Sql中想把小数点后多余的0去掉,怎么办? select 5000/10000.0 --想变成0.5 select 5500/10000.0 --想变成0.55 select 5550/10000.0 ...

  3. Java——去掉小数点后面多余的0

    当小数点后位数过多,多余的0没有实际意义,根据业务需求需要去掉多余的0.后端存储浮点型数据一般会用到Bigdecimal 类型,可以调用相关方法去掉小数后多余0,然后转为string. 例如: pub ...

  4. 如何去除小数点后面多余的0_704密封胶如何使用?怎么样去除多余的704密封胶?...

    与其它胶粘剂差不多,704密封胶有着既定的使用步骤.按照正确工艺去操作,均匀涂抹之后,快速固化并发挥更多性能.对于用户们来说,不能盲目去操作. 如何正确使用704密封胶? 1.可以使用胶枪去操作,打开 ...

  5. 去除小数点后的.或多余的0(多个方法参考)

    去除小数点后面多余的0,这个小需求大家平时肯定也会遇到,总结了以下两种方法:(推荐方法二) 一.方法一(通过正则匹配去除) /*** 正则去除.或多余的0** @param num 需要去除的参数*/ ...

  6. java向上取整去掉末尾的0_BigDecimal去除末尾多余的0

    Java有自带的 stripTrailingZeros() 方法用于去除末尾多余的0 BigDecimal num = new BigDecimal("100.000"); Big ...

  7. python中文字符串多余空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...

    python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入 ...

  8. python正则去掉重复单词_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 | 学步园...

    在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入输出如下: input:我今天 赚了 10 个亿,老百姓very happ ...

  9. 数值保留小数点两位,但同时去除小数点后多余0 的 javascript、java实现

    2019独角兽企业重金招聘Python工程师标准>>> 今天碰到一个需求.关于小数点的处理,看起来非常简单的事情,却花了一定时间做了一些试验.最后简单总结一下,以便备忘. 需求简化一 ...

  10. BigDecimal去除末尾多余的0

    Java有自带的 stripTrailingZeros() 方法用于去除末尾多余的0 BigDecimal num = new BigDecimal("100.000");BigD ...

最新文章

  1. MFC中显示 .bmp格式的位图
  2. 【Karma】多环境自动测试框架 -- 基础教程
  3. android arcgis多变形边框颜色,ArcGIS制图技巧—边框的选择
  4. html中div的居中
  5. oracle连接ORA-01017、ORA-12640
  6. 中国地震数据集-包含经纬度及深度(2000-2020年)
  7. c++ overload
  8. 福大2021计算机考研科目,2021计算机考研专业课发生改变的院校情况汇总
  9. C/C++学习路线总结与分享
  10. Android 热更新Robust 浅析
  11. [更新ing]sklearn(十六):Nearest Neighbors *
  12. 人工智能讲师AI讲师叶梓谈人工智能的应用人工智能项目咨询应用案例-8
  13. Win10系统电脑鼠标左键不灵敏、有延迟怎么办
  14. (图)Eee PC 904 HD闪亮登场!
  15. android设备判断是否支持NFC功能
  16. MySQL数据库之数据库约束,一文带你了解
  17. python爬虫登录微博_为爬虫获取登录cookies: 使用Charles和requests模拟微博登录
  18. 利用百度地图API制作房产酒店地图
  19. android按钮背景颜色函数,Android按钮背景颜色(Android button background color)
  20. C语言编写生辰八字计算器

热门文章

  1. 通过添加css样式cursor属性,改变鼠标的外形,变成放大镜
  2. switch之enum
  3. 数字体育进入黄金窗口期
  4. 关于java中xml文档解析
  5. xxx科技有限公司_公司管理制度
  6. redis为什么这么快
  7. Spark Streaming背压机制
  8. 如何配置luogu,codeforces的spj(special judge)
  9. 怎么利用好公众号后台做好分析报告
  10. 【ASP.NET MVC系列】浅谈Google Chrome浏览器(操作篇)(上)