我有大量的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)
现在我的问题是:我在这里遗漏了什么?这相当安全吗?还是我在这里打破一些东西?(我认为该软件包的作者有很强的理由避免浮动这么多)
我需要存储以下数据;
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 …
我正在搞乱调试选项,现在我所有的例外都是这样的
System.NullReferenceException越过了本机/托管边界.
有时候,当发生异常时,VS要求我打开一些.net .cs文件,好像我有源代码一样.我希望有一些"恢复默认值"按钮.知道我需要切换到什么才能使其正常工作?
为了响应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) 我使用Crystal Reports 11创建了一个报表,并尝试使用CrystalReportViewer在我的ASP.NET应用程序中显示该报表。我的报告只是一个具有多个列和标题行的表。问题是,当文本超过单元格的宽度时,它将与下一个单元格重叠。我想要达到的目的是,自动调整列宽以容纳列中最长的文本(就像普通的HTML表一样)。请帮助我,我不敢相信这个普通的事情很难做。谢谢!
我该怎么用?
<span style="color:red">test</span>
Run Code Online (Sandbox Code Playgroud)
要么
<font color="red">test</font>
Run Code Online (Sandbox Code Playgroud)
为什么?
为了让我更清楚,我想问你们有正确的条件让你们
项目或解决方案重建 而不是 在Visual Studio 中构建?
如果我改写它:为什么MS需要在Visual Studio中创建"重新构建所有"选项?他们这样做的主要动机是什么?
谢谢!
我有一个看起来像这样的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)
有没有办法进行不区分大小写的搜索?
输入
<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- 我想得到每个文本,而不是一次.
我一直在寻找一种方法来捕获JSON中的结构化文本(部分,段落,重点,列表等),但我还没有找到任何东西.有什么建议?(Markdown克服了我的想法,但那里可能会有更好的东西.)
python ×2
.net ×1
api ×1
asp.net ×1
c# ×1
chaining ×1
compilation ×1
css ×1
decimal ×1
hashmap ×1
html ×1
html-parsing ×1
java ×1
jquery ×1
json ×1
linked-list ×1
msbuild ×1
python-2.4 ×1
rebuild ×1
text ×1