将浮点数转换为一定精度,然后复制为字符串 [英] Convert floating point number to a certain precision, and then copy to string

查看:19
本文介绍了将浮点数转换为一定精度,然后复制为字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个浮点数,比如 135.12345678910.我想将该值连接到一个字符串,但只需要 135.123456789.使用打印,我可以通过执行以下操作轻松做到这一点:

I have a floating point number, say 135.12345678910. I want to concatenate that value to a string, but only want 135.123456789. With print, I can easily do this by doing something like:

print "%.9f" % numvar

numvar 是我的原始号码.有没有简单的方法可以做到这一点?

with numvar being my original number. Is there an easy way to do this?

推荐答案

使用 Python <3(例如 2.6 [见评论] 或 2.7),有两种方法.

With Python < 3 (e.g. 2.6 [see comments] or 2.7), there are two ways to do so.

# Option one
older_method_string = "%.9f" % numvar

# Option two
newer_method_string = "{:.9f}".format(numvar)

但请注意,对于高于 3 的 Python 版本(例如 3.2 或 3.3),选项二是 首选.

But note that for Python versions above 3 (e.g. 3.2 or 3.3), option two is preferred.

有关选项二的更多信息,我建议 this link on string formatting from thePython 文档.

For more information on option two, I suggest this link on string formatting from the Python documentation.

关于选项一的更多信息,这个链接就足够了,并且有各种标志的信息.

And for more information on option one, this link will suffice and has info on the various flags.

Python 3.6(2016 年 12 月正式发布),添加了 f 字符串字面量,在此处查看更多信息,它扩展了 str.format 方法(使用大括号,例如 f"{numvar:.9f}" 解决了原来的问题),也就是

Python 3.6 (officially released in December of 2016), added the f string literal, see more information here, which extends the str.format method (use of curly braces such that f"{numvar:.9f}" solves the original problem), that is,

# Option 3 (versions 3.6 and higher)
newest_method_string = f"{numvar:.9f}"

解决问题.查看@Or-Duan 的答案以获取更多信息,但此方法快速.

solves the problem. Check out @Or-Duan's answer for more info, but this method is fast.

这篇关于将浮点数转换为一定精度,然后复制为字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆