- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在使用一个代码分析器,它具有这样的规则“不检查浮点相等性/不等性”。下面是给出的示例。
float f = 0.100000001f; // 0.1
double d = 0.10000000000000001; // 0.1
float myNumber = 3.146f;
if ( myNumber == 3.146f ) //Noncompliant. Because of floating point imprecision, this will be false
{
////
}
else
{
////
}
if (myNumber <= 3.146f && mNumber >= 3.146f) // Noncompliant indirect equality test
{
// ...
}
if (myNumber < 4 || myNumber > 4) // Noncompliant indirect inequality test
{
// ...
}
当我测试此代码时,如果 ( myNumber == 3.146f ) 为真,所以我无法理解此规则的含义。
此规则需要什么解决方案或代码更改?
此规则适用于 C# 吗?当我用谷歌搜索时,我看到了更多关于此规则的 C/C++ 示例
最佳答案
float 不精确。在某些情况下,结果出乎意料,因此在没有一定公差的情况下比较 float 是否相等是不好的做法。
可以用简单的例子来演示。
if(0.1 + 0.2 == 0.3)
{
Console.WriteLine("Equal");
}
else
{
Console.WriteLine("Not Equal");
}
它将打印Not Equal
。
演示:https://dotnetfiddle.net/ltAFWe
解决办法是增加一些公差,例如:
if(Math.Abs((0.1 + 0.2) - 0.3) < 0.0001)
{
Console.WriteLine("Equal");
}
else
{
Console.WriteLine("Not Equal");
}
现在它将打印Equal
。
关于c# - 不检查浮点等式/不等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40420188/
所以我正在为“石头剪刀布蜥蜴 Spock”制作一个 Javascript 程序,并且使用 Math.random()。我需要使用if/else/else if's。有人可以帮我解决不平等问题吗?我
我们正在使用一个代码分析器,它具有这样的规则“不检查浮点相等性/不等性”。下面是给出的示例。 float f = 0.100000001f; // 0.1 double d = 0.100000000
我们正在使用一个代码分析器,它具有这样的规则“不检查浮点相等性/不等性”。下面是给出的示例。 float f = 0.100000001f; // 0.1 double d = 0.100000000
C++20 为我们提供了飞船操作符,甚至允许我们 default它,使用默认语义生成所有比较,这将从我们的代码库中删除很多样板,太棒了! 但是平等和不平等呢? C++20 是否也为我们提供了一种方式
我今天在写一些 Python 时意识到可以将不等运算符写成 a!=b 或 not a==b。这让我很好奇: 这两种方式的行为是否完全相同,还是存在一些细微差别? 是否有理由使用一个而不是另一个?一种比
假设我们有几个线性不等式,比如 2x-5y=0 ,我们如何绘制这两个不等式?为了扩展这一点,如果我们有多个这样的不等式,我们如何尝试以图形方式解决这个问题? 最佳答案 你可以试试ImplicitEqu
为什么以下简化 不起作用,或者如何解决: >>> x = Symbol('x', real=True) >>> y = Symbol('y', real=True) >>> simplify(x -
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
这个问题在这里已经有了答案: Draw 3d Inequality on Matlab (1 个回答) matlab - plot inequality in 3d with surf (1 个回答
考虑使用这两个表和以下查询: SELECT Product. * FROM Product WHERE EXISTS ( SELECT * FROM Codes
我在笔记本界面中使用 Mathematica 7,我想重新排列一个不等式,以便在一侧获得某个变量。例如。 FullSimplify[x^3+L+r>3x^3+2r] 给 L > r + 2 x^3 但
我是一名优秀的程序员,十分优秀!