如何在Python中将浮点数格式化为最大固定宽度

如何在Python中将浮点数格式化为最大固定宽度,第1张

概述我正在将一个输入文件写入一个源于60年代的程序,它从文本文件的固定宽度数据字段读取数据.格式为: >字段宽度为8个字符 >浮点数必须包含’.’或以指数格式书写,例如’1.23e8′ 我最接近的是 print "{0:8.3g}".format(number) 产生’1.23e 06’与1234567,和’1234’与1234. 我想调整一下,得到 >’1234567.’使用1234567(即在它之 我正在将一个输入文件写入一个源于60年代的程序,它从文本文件的固定宽度数据字段读取数据.格式为:

>字段宽度为8个字符
>浮点数必须包含’.’或以指数格式书写,例如’1.23e8′

我最接近的是

print "{0:8.3g}".format(number)

产生’1.23e 06’与1234567,和’1234’与1234.

我想调整一下,得到

>’1234567.’使用1234567(即在它之前不会采用指数格式)
需要),
>’1234.’ 1234(即以点结尾,因此不会被解释为整数),
>’1.235e 7’与12345678(即指数仅使用一位数),
>’ – 1.23e 7′,带-1234567(即未违反8位数最大值
负数).

由于这是(据我记得)很容易用Fortran实现的,问题可能偶尔出现,当与遗留代码交互时,我怀疑必须有一些简单的方法来做到这一点?

解决方法 你已经非常接近,但我认为你的最终解决方案将涉及编写自定义格式化程序.例如,我不相信 mini-formatting language可以像你想要的那样控制指数的宽度.

(顺便说一句,在你的第一个例子中,你没有在“e”之后有一个“”,而是在你做的其他人之后.明确你想要哪一个可以帮助其他的回答者.)

如果我正在编写这种格式化函数,我要做的第一件事就是为它编写一套完整的测试. doctest或unittest都适用.

然后,您将处理格式化功能,直到所有这些测试通过.

总结

以上是内存溢出为你收集整理的如何在Python中将浮点数格式化为最大固定宽度全部内容,希望文章能够帮你解决如何在Python中将浮点数格式化为最大固定宽度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1197058.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存