![]() |
1
35
我从来都不喜欢
一般来说,如果没有舍入和常规逻辑,我发现直接逻辑比所有的逻辑都好。
如果
不管怎样,你必须为
|
![]() |
2
11
如果要经常使用此方法,可以将其创建为单独的运算符或覆盖原始的>=函数(可能不是个好主意):
|
![]() |
3
6
为了完整起见,我将指出,在某些情况下,您可以简单地四舍五入到小数点后几位(与之前发布的更好的解决方案相比,这是一种蹩脚的解决方案)。
|
![]() |
4
3
选择一些公差等级:
然后使用
|
![]() |
5
2
但是,如果你仍然使用公差,为什么你关心a-b=.5(事实上)没有得到评估?如果你用的是公差,你是说我不在乎终点。 这是事实 如果((a-b)>=0.5) 如果((a-b)<.5) 其中一个应该总是对每对双打都正确。任何使用其中一个的代码都会隐式地定义另一个的no操作,至少是这样。如果你使用公差得到实际的.5包含在第一个,但你的问题是定义在一个连续的领域你学不到什么成就。在大多数涉及底层问题中的连续值的问题中,这一点几乎没有意义,因为任意超过.5的值将始终按其应有的方式计算。任意接近0.5的值将进入“错误”的流控制,但在连续的问题中,使用适当的精度并不重要。 公差唯一有意义的时候是在处理类型的问题时 如果((a-b)==c) 如果((a-b)!= C) 这里再多的“适当的精确”也帮不了你。原因是你必须准备好,除非你用手把a-b的位设置在一个很低的水平,否则第二个总是求值为真,而实际上你可能希望第一个有时是真的。 |
![]() |
6
1
再来一个评论。这个
(.机器手册页)。 换言之,对于你的宽容,这是一个可以接受的选择:
|
|
Rik Bloemers · for循环不接受任何浮点变量 2 年前 |
![]() |
zell · 为什么存储7个浮点数需要34字节? 3 年前 |
![]() |
Atharva Sunil Sathe · 如何删除任意数的小数点? 3 年前 |
![]() |
user1658887 · 为什么**2!=a*a一些彩车? 6 年前 |