问题列表 - 第39154页

邪恶的十进制/浮动中的邪恶

我有大量的python代码试图处理4位小数精度的数字,并且由于很多原因我被困在python 2.4中.代码执行非常简单的数学(它是一个信用管理代码,主要采用或添加信用)

它混合了float和Decimal的使用(MySQLdb为SQL DECIMAL类型返回Decimal对象).在使用了几个奇怪的错误之后,我发现所有的根本原因是代码中的一些地方浮动和Decimals被比较.

我得到这样的案例:

>>> from decimal import Decimal
>>> max(Decimal('0.06'), 0.6)
Decimal("0.06")
Run Code Online (Sandbox Code Playgroud)

现在我担心的是我可能无法在代码中捕获所有这些情况.(一个普通的程序员会继续做x> 0而不是x> Decimal('0.0000')并且很难避免)

我想出了一个补丁(灵感来自python 2.7中对十进制包的改进).

import decimal
def _convert_other(other):
     """Convert other to Decimal.

     Verifies that it's ok to use in an implicit construction.
     """
     if isinstance(other, Decimal):
         return other
     if isinstance(other, (int, long)):
         return Decimal(other)
     # Our small patch begins
     if isinstance(other, float):
         return Decimal(str(other))
     # Our small patch ends
     return NotImplemented
decimal._convert_other = _convert_other
Run Code Online (Sandbox Code Playgroud)

我只是在一个非常早期的加载库中执行它,它将通过在比较之前允许float到Decimal转换来更改十进制包行为(以避免将python的默认对象命中对象).

我特意使用"str"而不是"repr",因为它修复了一些float的舍入情况.例如

>>> Decimal(str(0.6))
Decimal("0.6")
>>> Decimal(repr(0.6))
Decimal("0.59999999999999998")
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:我在这里遗漏了什么?这相当安全吗?还是我在这里打破一些东西?(我认为该软件包的作者有很强的理由避免浮动这么多)

python floating-point decimal python-2.4

16
推荐指数
1
解决办法
5588
查看次数

使用什么数据结构?

我需要存储以下数据;

Clampls = {"23e23e", "ff333g", "fhgswq"," h65h3", "ffwwf", "34rf3"}
KJAS3.2 = {"f34f4f", "43rf2d", "3rfas1"," 1122d", "fff42", "ff33f"}
...
Run Code Online (Sandbox Code Playgroud)

我在考虑存储这样的东西

 Name        Tokens
  .       -> ... , ... , ... , ...
  .       -> ... , ... , ... , ...
Clampls   -> "23e23e" , "ff333g" , "fhgswq" , ... 
KJAS3.2   -> "f34f4f" , "43rf2d" , "3rfas1" , ...  
  .       -> ... , ... , ... , ...
  .       -> ... , ... , ... , ...
Run Code Online (Sandbox Code Playgroud)

有点像HashMap.我在我的书" 数据结构与算法"(Java,R)中做了一些阅读.我发现了我需要的东西,Separate Chaining …

java linked-list hashmap chaining data-structures

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

为什么我的所有异常消息现在以"越过本地/管理边界"结束

我正在搞乱调试选项,现在我所有的例外都是这样的

System.NullReferenceException越过了本机/托管边界.

有时候,当发生异常时,VS要求我打开一些.net .cs文件,好像我有源代码一样.我希望有一些"恢复默认值"按钮.知道我需要切换到什么才能使其正常工作?

visual-studio-2010 visual-studio

7
推荐指数
2
解决办法
5629
查看次数

在 Python 中高效使用 HTMLParser

为了响应Python 正则表达式,我尝试使用以下方法实现 HTML 解析器HTMLParser

import HTMLParser

class ExtractHeadings(HTMLParser.HTMLParser):

  def __init__(self):
    HTMLParser.HTMLParser.__init__(self)
    self.text = None
    self.headings = []

  def is_relevant(self, tagname):
    return tagname == 'h1' or tagname == 'h2'

  def handle_starttag(self, tag, attrs):
    if self.is_relevant(tag):
      self.in_heading = True
      self.text = ''

  def handle_endtag(self, tag):
    if self.is_relevant(tag):
      self.headings += [self.text]
      self.text = None

  def handle_data(self, data):
    if self.text != None:
      self.text += data

  def handle_charref(self, name):
    if self.text != None:
      if name[0] == 'x':
        self.text += chr(int(name[1:], 16)) …
Run Code Online (Sandbox Code Playgroud)

python api html-parsing

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

Crystal Reports:自动列宽

我使用Crystal Reports 11创建了一个报表,并尝试使用CrystalReportViewer在我的ASP.NET应用程序中显示该报表。我的报告只是一个具有多个列和标题行的表。问题是,当文本超过单元格的宽度时,它将与下一个单元格重叠。我想要达到的目的是,自动调整列宽以容纳列中最长的文本(就像普通的HTML表一样)。请帮助我,我不敢相信这个普通的事情很难做。谢谢!

asp.net crystal-reports

2
推荐指数
1
解决办法
8252
查看次数

HTML/CSS字体颜色与跨度样式

我该怎么用?

<span style="color:red">test</span>
Run Code Online (Sandbox Code Playgroud)

要么

<font color="red">test</font>
Run Code Online (Sandbox Code Playgroud)

为什么?

html css

51
推荐指数
6
解决办法
25万
查看次数

你什么时候应该更喜欢ReBuild而不是Build?

为了让我更清楚,我想问你们有正确的条件让你们

项目或解决方案重建 而不是 在Visual Studio 构建

如果我改写它:为什么MS需要在Visual Studio中创建"重新构建所有"选项?他们这样做的主要动机是什么?

谢谢!

.net msbuild rebuild compilation visual-studio

10
推荐指数
1
解决办法
1248
查看次数

jQuery - 不区分大小写的标记选择器

我有一个看起来像这样的XML文档:

<Xmlpp Version="0.3"><meta><Id>123456789</Id></meta></Xmlpp>
Run Code Online (Sandbox Code Playgroud)

这就是jQuery的行为方式:

// theDocument is a reference to the XML document
$("meta id", theDocument).size(); // Will return 0
$("meta Id", theDocument).size(); // Will return 1
Run Code Online (Sandbox Code Playgroud)

有没有办法进行不区分大小写的搜索?

jquery case-insensitive jquery-selectors

2
推荐指数
1
解决办法
402
查看次数

使用Html Agility Pack从html中获取所有文本

输入

<html><body><p>foo <a href='http://www.example.com'>bar</a> baz</p></body></html>
Run Code Online (Sandbox Code Playgroud)

产量

foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

我知道htmldoc.DocumentNode.InnerText,但它会给foobarbaz- 我想得到每个文本,而不是一次.

c# html-agility-pack

28
推荐指数
5
解决办法
4万
查看次数

JSON中的结构化文本

我一直在寻找一种方法来捕获JSON中的结构化文本(部分,段落,重点,列表等),但我还没有找到任何东西.有什么建议?(Markdown克服了我的想法,但那里可能会有更好的东西.)

text json

5
推荐指数
2
解决办法
4580
查看次数