尝试使用格式说明符来打印浮点数,该浮点数将小于1,且前导零。我想出了一点技巧,但我认为有一种方法可以将格式说明符中的前导零丢弃。我在文档中找不到它。
问题
>>> k = .1337
>>> print "%.4f" % k
'0.1337'
哈克
>>> print ("%.4f" % k) [1:]
'.1337'
尽管我喜欢可爱的正则表达式技巧,但我认为简单的函数是实现此目的的最佳方法:
def formatFloat(fmt, val):
ret = fmt % val
if ret.startswith("0."):
return ret[1:]
if ret.startswith("-0."):
return "-" + ret[2:]
return ret
>>> formatFloat("%.4f", .2)
'.2000'
>>> formatFloat("%.4f", -.2)
'-.2000'
>>> formatFloat("%.4f", -100.2)
'-100.2000'
>>> formatFloat("%.4f", 100.2)
'100.2000'
这样做的好处是易于理解,部分原因startswith
是因为它是简单的字符串匹配而不是正则表达式。
问题内容: 如果结果为小数,如何打印浮点数;如果结果没有小数,如何打印整数? 示例结果 问题答案: 您可以尝试使用简单的Python字符串格式化方法: 如果满足以下条件,将为您提供以下输出: 或此输出,如果:
问题内容: 众所周知,(大多数)浮点数没有精确存储(使用IEEE-754格式时)。因此,不应这样做: ......因为它会导致,除非一些特定的任意精度的类型/类使用(BigDecimal的中的Java/Ruby的,bcmath时在PHP中,[数学::BigInt有 / 数学::BigFloat在Perl,仅举几例)来代替。 但是,我想知道为什么当尝试打印该表达式的结果时,脚本语言(Perl和PHP
问题内容: 当我在PHP中进行以下乘法时: 我得到结果:1.0E-9 我想将此结果转换为普通的十进制表示法,我该怎么做? 不起作用,它返回。溢出? 问题答案: 不起作用,它返回。溢出? 可以,但是您在这里错过了一点。 没有溢出。只是对于修饰符,默认情况下使用6位数字。另外,请注意区域设置,可能更适合。 您可能希望使用更多数字,例如说4000000(400万): 如该示例所示,不仅有一个公共值(6位
我正在生成一个用作FORTRAN输入文件的文本文件。FORTRAN程序指定它读取的值的格式必须 必须打印为 到目前为止,我使用iostream最接近的是 使用代码 有没有人知道如上图所示获得前导零的最佳方法,最好是使用ostream而不是printf?
问题内容: 为什么 打印而不是? 作为以下代码行的输出,我的字符串看起来如何? 问题答案: 数后这里定义全宽,包括小数点,所以你需要将其更改为:
问题内容: 我知道如何做X数量的前导零,并且我知道如何做X数量的小数点。但是,我该怎么办? 我希望有4个前导零,十进制精度为2:0000.00。因此43.4将是0043.40 问题答案: 尝试以下(C,Perl,PHP)格式的字符串: