小编Pet*_*ank的帖子

Python新手如何克服浮点比较的问题

很抱歉有一个很长的问题,对于那些并非真正极少的代码.

我对浮点比较的棘手理解非常有限.我已经阅读了一些有关该主题的python文档和教程.我已经阅读了一些SO讨论,例如/sf/answers/282057821/.

但是,我不知道如何应用响应,例如"为什么你不使用str(值)"或"只是用%格式化"或"你必须使用十进制".我最喜欢的主题是"忽略第11个小数位差异......它们并不重要,如果你将响应格式化为字符串,你最终可以得到正确的美学." 我不知道如何在我的应用程序中完成这项工作.

这是我的代码,可能看起来像家庭作业,但事实并非如此.我正在计算跨越非矩形多边形的线网格的交点.我生成一个矩形,移动一个或多个角,然后在多边形上绘制和重绘网格,所以我需要计算网格线的开始,结束和交叉的位置.

def partition_boundaries(start, stop, number_of_partitions):
    interval = (stop - start)/number_of_partitions
    l = [start, stop]
    i = 1
    while i < number_of_partitions:
        l.insert(i, start + i*interval)
        i += 1
    return l

def test():
    test_cases = [
                  ((0.0, 1.0, 2), [0, .5, 1]), 
                  ((0.0, 1.0, 4), [0.0, 0.25, 0.5, 0.75, 1.0]), 
                  ]
    passes = 0
    for (args, expected_result) in test_cases:
        result = partition_boundaries(*args)
        if result != expected_result:
            print "Failed for: ", args, ".  Expected: ", expected_result, …
Run Code Online (Sandbox Code Playgroud)

python floating-point

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

标签 统计

floating-point ×1

python ×1