当前位置: 首页 > 面试题库 >

JUnit assertEquals(两倍期望值,两倍实际值,两倍ε)

长孙星汉
2023-03-14
问题内容

显然assertEquals(double expected, double actual)已弃用。

考虑到JUnit的广泛使用,令人惊讶地缺少JUnit的javadocs。你能告诉我如何使用新的assertEquals(double expected, double actual, double epsilon)吗?


问题答案:

Epsilon是您的“模糊因素”,因为双精度可能并不完全相等。Epsilon让您描述它们之间必须有多近。

如果您期望的是3.14159,但需要花费3.14059至3.14259(即0.001以内),那么您应该编写类似

double myPi = 22.0d / 7.0d; //Don't use this in real life!
assertEquals(3.14159, myPi, 0.001);

(顺便说一句,22/7达到3.1428+,将使断言失败。这是一件好事。)



 类似资料:
  • 问题内容: 所以我想做的是将double转换为有理数。我检查小数点后有多少个数字,例如,我想将数字123.456保存为123456/1000。 但是,对于数字123.456,我得到了一个四舍五入的错误,结果是123455。我想可以用BigDecimal来解决这个问题,但我无法使其正常工作。同样,在计算出有理数之后,我想用参数(int numerator,int denominator)调用另一个构

  • 问题内容: 上面的代码显示: 我如何才能仅打印(或将其用作)11.4? 问题答案: 正如其他人提到的那样,如果您想要精确表示为11.4,则可能要使用该类。 现在,对造成这种情况的原因进行一些解释: Java中的和类型是浮点数,其中的数字以小数和指数的二进制表示形式存储。 更具体地说,双精度浮点值(例如doubletype)是64位值,其中: 1位表示符号(正或负)。 指数为11位。 52位为有效数

  • 问题内容: 所以我将double设置为1234,我想将小数点后移至12.34 因此,我将.1乘以1234两次,就像这样 这将打印结果 有没有一种方法,不用简单地将其格式化为两位小数,就可以正确地保存双重存储12.34? 问题答案: 如果使用或,则应使用舍入或期望看到一些舍入错误。如果你无法执行此操作,请使用。 你遇到的问题是0.1不是精确的表示形式,并且通过执行两次计算,你正在使该错误复杂化。 但

  • 问题内容: 我正在使用Windows 7计算机,其“控制面板\时钟,语言和区域”为“丹麦” 根据扫描仪的文档: 扫描程序的初始语言环境是Locale.getDefault()方法返回的值。 但是当我运行代码时: 它输出“ en_US”,然后在sc.nextDouble()处引发java.util.InputMismatchException。当扫描仪初始化为“ 1,0”时,它可以工作 但是,如果我

  • 金三银四都快过去了,大家应该都有满意的offer了吧?想来聊聊这次暑期实习求职中的一些不愉快经历。 lz是本硕9,找实习前非常担心自己找不到好的实习工作,但师兄们一直安慰美团很好过,保底去团子。往年他们都是一周之内光速拿到offer。 今年美团很早就开了,也是我最早开始笔试的,说实话早期刷题不够,笔试做得很差,后三道一道也没A,但是分数综合起来5题做了3/5。 srds,团子还是很快约一面了,大数

  • 我是一名编程学生,我在这个问题上遇到了很多麻烦: “完成一个静态方法multipleof,它接受两个int参数number和count。方法体必须返回一个包含number的第一个计数倍数的int数组。例如,