小编csp*_*der的帖子

如何使用逗号和指定的精度数字格式化数字

问题出在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)

python string-formatting number-formatting

13
推荐指数
2
解决办法
2万
查看次数

Grails - OSIV - 停止静态资源的"在视图中打开会话"过滤器

我也在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也会启动并打开会话并关闭它.

提前致谢.

grails

5
推荐指数
1
解决办法
1165
查看次数