不幸的是,似乎甚至没有浮动.__格式的新式格式支持这个。 float的默认格式与repr相同;和f标志默认有6个小数位数:

>>> format(0.0000000005, 'f')

'0.000000'

然而,有一个hack获得所需的结果 – 不是最快的,但相对简单:

>首先使用str()或repr()将float转换为字符串,

>然后从该字符串创建一个新的Decimal实例。

> Decimal .__ format__支持f标志,它给出所需的结果,并且与float不同,它打印实际精度而不是默认精度。

因此我们可以创建一个简单的效用函数float_to_str:

import decimal

# create a new context for this task

ctx = decimal.Context()

# 20 digits should be enough for everyone :D

ctx.prec = 20

def float_to_str(f):

"""

Convert the given float to a string,

without resorting to scientific notation

"""

d1 = ctx.create_decimal(repr(f))

return format(d1, 'f')

必须小心不要使用全局十进制上下文,因此为此函数构造一个新的上下文。这是最快的方式;另一种方法是使用decimal.local_context,但它会更慢,为每个转换创建一个新的线程本地上下文和上下文管理器。

>>> float_to_str(0.1)

'0.1'

>>> float_to_str(0.00000005)

'0.00000005'

>>> float_to_str(420000000000000000.0)

'420000000000000000'

>>> float_to_str(0.000000000123123123123123123123)

'0.00000000012312312312312313'

最后一个结果在最后一位数字四舍五入

正如@Karin所指出的,float_to_str(420000000000000000.0)并不与预期的格式严格匹配;它返回420000000000000000没有尾.0。

python浮点数转科学计数_python – 将float转换为字符串没有科学记数法和假精度...相关推荐

  1. python怎么用科学计数法输出_python 输出数字,如何不以科学计数法输出?

    概述定义一个2113变量,用于记录次数,然5261后这个次数没输出一个4102数自己加1,然后处理这个数,取1653整数,并且再次归零.代码详解使用循环输出列表,利用 计数器控制输出数量,当输出到第十 ...

  2. Python不使用科学计数法输出数据的实现方法

    文章目录 前言 一.背景介绍 二.例子详解 1.例1 以常规形式输出: 2.例2 以科学计数法形式输出: 总结 前言 本文主要介绍在利用Python进行科学计算的时候,怎么让计算出来的数据不以科学计数 ...

  3. python中的科学计数法表示

    在python中如何使用科学计数法对我们想要定义的变量进行赋值呢?请看以下代码: # -*- coding:utf-8 -*- """ author: 15025 tim ...

  4. Python 多位数字写入CSV文件,避免科学计数法显示,超长数字,超大数字,精度保留

    问题:多位数字直接写入CSV文件后,发现以下问题 1.数字位数过多,excel打开显示科学计数法 2.即使excel单元格格式为数字,发现最后几位被四舍五入,精度丢失 解决思路: 解决办法:数字改成字 ...

  5. python公共基础知识整理_python基础知识整理——字符串

    1.字符串的基本操作 所有标准的序列操作(索引.分片.乘法.判断成员的资格.求长度.取最大值和最小值)都适用于字符串. Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引 ...

  6. PHP把科学计数格式转化为数字字符串,PHP用字段varchar类型进行比较排序

    前言:在写API接口的时候,小游戏前端传过来的数据是科学计数法字符格式的,如1.2345678987654321e+30,此时后台处理得到数据需要进行比较排序. 1.强制性的用字段为varchar类型 ...

  7. JavaScript中科学计数法转化为数值字符串形式

    原文地址:https://www.css88.com/archives/9318 (受益匪浅) JavaScript 中经常会碰到数值计算问题,偶尔会在不经意间报一个不是bug的bug.今天来说说一个 ...

  8. python浮点数占多少字节_Python的浮点数损失精度问题

    原博文 2018-04-20 22:35 − 本篇讨论的现象可以从下面这段脚本体现出来:>>> x = 0.0 >>> for i in range(10): x ...

  9. python浮点数的表示方法_python中的浮点数range方法

    我们知道python中有个range函数用来产生一个范围内的数字数组,但是浮点数没有,我们来定义一个 #python中的range函数支持步进,如下: >>> print range ...

  10. python 不以科学计数法输出

    其实很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定

最新文章

  1. FPGA开发要懂得使用硬件分析仪调试——ILA
  2. pyghon list指定位置插入字符的方法
  3. C++友元函数和友元类(二)
  4. dcdc模块降额设计_模块电源应用设计的可靠性和注意事项
  5. CV之NS之VGG16:基于预训练模型VGG16训练COCO的train2014数据集实现训练《神奈川冲浪里》风格配置yml文件
  6. laravel 安装配置前准备
  7. [剑指offer]面试题37:两个链表的第一个公共结点
  8. linux服务器非root用户安装Anaconda,并配置tensorflow/pytorch
  9. Hie with the Pie(poj3311)
  10. docker 打包新镜像原有配置丢失_Docker简介与安装
  11. powershell / ps脚本ps1中.exe(可执行文件)没反应
  12. 益阳计算机应用专业推荐一下,益阳职业技术学院10大好专业推荐
  13. mysql表的默认所有者_MySQL数据库基本管理-001
  14. 角色扮演RPG游戏项目
  15. React脚手架配置代理解决跨域
  16. 没有公网IP?快解析实现内网穿透
  17. php计算器按钮功能,PHP实现的简单在线计算器功能示例
  18. 计算机按键 shift的作用,电脑shift键的十一个妙用
  19. android不能启动rom服务,基于uniapp开发的apk不能正常在android10上启动运行
  20. 什么是集群?集群分为哪几类?

热门文章

  1. sdut3138: N!(计算n!中结尾零的个数)
  2. Understand Rails Authenticity Token
  3. JQuery序列化表单serialize() 以及 serializeArray()
  4. YouCompleteMe自动补全的安装配置与使用
  5. “Hello World!”团队第五周第五次会议
  6. 黑马程序员_MapK,V 映射关系 Map.Entry
  7. async和await浅析
  8. Firefox中的document.all的替代方案-From EasyCluster support Firefox
  9. 拓端tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法
  10. (4) numpy.isnan() 用法