问题出在Python 2.6上,这就是我们在生产中所拥有的.
我有这个要求用逗号格式化数字(如1234567.0987或1234567.0),以及小数点后指定的位数.因此,如果精度为3,则1234567.0987可能看起来像1,234,567.099.
我尝试使用Locale,正如许多问题的答案所示,问题是小数点后产生两位数,这对我的要求是不可接受的.
我尝试在其他地方搜索,但没有找到任何解决方案,最后我自己创建了一个方法:
def format_float(value, precision = 4):
formatString = "%0." + str(precision) + "f"
str_val = formatString % value
first, second = str_val.split('.')
first = int(first)
group = []
while True:
result, mod = first / 1000, first % 1000
group.append(str(mod))
if result == 0:
break
first = result
group.reverse()
return ','.join(group) + '.' + second
Run Code Online (Sandbox Code Playgroud)
我试图运行一些测试来测试该方法,它工作正常:
# default 4 digits precision
assert format_float(1234567890.0876543) == '1,234,567,890.0877'
assert format_float(1.2) == '1.2000'
assert format_float(1234) == '1,234.0000'
assert format_float(0) == …Run Code Online (Sandbox Code Playgroud) 我也在Javaranch中交叉发布.我通过谷歌搜索做了尽职调查.我没有找到任何答案.
我们有一个REST服务基础Web应用程序,后端是使用Groovy和Grails(1.3.7与Groovy 1.7.x)实现的.我理解Open Session In View在Hibernate中的工作原理是什么,当用Spring配置Hibernate时,我们可以指定OSIV应该在过滤器配置中使用哪组URL.
问题是我找不到如何从OSIV过滤器的范围中排除一组URL(如匹配*.js,*.gif等).我从Hibernate日志中发现,即使对于Javascript文件请求,Open Session In View也会启动并打开会话并关闭它.
提前致谢.