草庐IT

T_DOUBLE_ARROW

全部标签

java - 如何在 JUnit 中比较两个 double 列表

在JUnit4测试中,我有一个方法getValues()返回List我想与引用列表进行比较的对象。到目前为止,我找到的最佳解决方案是使用org.hamcrest.collection.IsArray.hasItems和org.hamcrest.Matchers.closeTo像这样:assertThat(getValues(),hasItems(closeTo(0.2,EPSILON),closeTo(0.3,EPSILON)));这对于只返回少量值的测试来说很顺利。但如果测试返回更多值,这绝对不是最佳方法。我也试过下面的代码。垂头丧气到Matcher之前hasItems代码编译需要:

java - 在 Java 中比较 double 值是否相等。

我想听取在Java中使用原始double相等性有更多经验的人的一些建议。由于可能存在舍入错误,对两个doubled1和d2使用d1==d2是不够的。我的问题是:Java的Double.compare(d1,d2)==0是否在某种程度上处理舍入错误?如1.7documentation中所述如果d1在数值上等于d2,它返回值0。有人确定他们所说的数值相等到底是什么意思吗?对某些增量值使用相对误差计算,是否有您会推荐的通用(非特定于应用程序)增量值?请参阅下面的示例。下面是一个通用函数,用于在考虑相对误差的情况下检查相等性。您建议使用什么值的delta来捕获简单操作+、-、/、*操作中的大部

java - 调用 Double.valueOf(String s) 和 new Double(String s) 有什么区别?

所以我有一个字符串,我想用该字符串作为值创建一个Double对象。我可以打电话DoublemyDouble=newDouble(myString);或者我可以打电话DoublemyDouble=Double.valueOf(myString);有区别吗?我猜第一个保证在堆上创建一个新对象,第二个可能重用现有对象。额外加分:字符串可能是null,在这种情况下我希望Double是null,但以上两个都抛出空指针异常。有没有写法双myDouble=myString==null?null:Double.valueOf(myString);代码更少? 最佳答案

java - Double.POSITIVE_INFINITY == Float.POSITIVE_INFINITY

我试过了System.out.println(Double.isInfinite(Float.POSITIVE_INFINITY))System.out.println(Double.isInfinite(Float.NEGATIVE_INFINITY));输出是truetrue所以这意味着“无限”对于两种数据类型是相同的? 最佳答案 是也不是。是的,因为在抽象意义上无限就是无限(而且,正如我在下面解释的那样,出于大多数代码的目的,float无论如何都会转换为double)。但是,不是,因为在位级别上,这两个无穷大是不同的。Java

java - 如何使用 Play 2.0 路由绑定(bind) Double 参数

我正在学习Play2.0(使用JavaAPI)并希望有一个double/float参数(用于位置坐标),比如http://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253。我可以通过获取字符串形式的参数并在Controller等处解析它们来做到这一点,但是我可以在这里使用自动绑定(bind)吗?现在,我首先尝试简单地使用一个double值:GET/events/foocontrollers.Application.foo(doublevalue:Double)与publicstaticResultfoo(Do

java - 如何检查 double 是否最多有 n 位小数?

目前我有这个方法:staticbooleancheckDecimalPlaces(doubled,intdecimalPlaces){if(d==0)returntrue;doublemultiplier=Math.pow(10,decimalPlaces);doublecheck=d*multiplier;check=Math.round(check);check=check/multiplier;return(d==check);}但此方法对于checkDecmialPlaces(649632196443.4279,4)失败可能是因为我在基数2上进行基数10的数学计算。那么如何才能

java - 格式化 double 以省略不必要的 ".0"并且从不四舍五入

这个问题在这里已经有了答案:Howtonicelyformatfloatingnumberstostringwithoutunnecessarydecimal0's(28个答案)关闭9年前。我知道如何格式化double以仅保留可用的小数位(DP),最多保留一定数量的DP。此示例最多保留4个DP。doubled=1.0;DecimalFormatdf=newDecimalFormat("#.####");System.out.print(df.format(d));//returns"1"doubled=1.23;DecimalFormatdf=newDecimalFormat("#.#

java - 我应该在 TreeMap 中使用 Double 作为键吗?

如对DoubleinHashMap的回答中所述,Doubles不应在HashMap中使用,因为它们很难比较是否相等。我相信我的情况有所不同,但我想我会要求确认一下,因为我没有看到任何相关信息。我将有一系列与对象关联的double值,我希望它们按double值排序。TreeMap是合适的解决方案吗?会有更好的吗?double值是由一堆数学运算生成的,因此出现重复值的可能性极低。编辑:我应该澄清一下:我需要的只是让这个对象列表按照它们关联的double排序。double的值将被丢弃,我永远不会调用map.get(key) 最佳答案 Do

java - 通过引用传递 double 值

如何在java中通过引用传递double值?例子:Doublea=3.0;Doubleb=a;System.out.println("a:"+a+"b:"+b);a=5.0;System.out.println("a:"+a+"b:"+b);此代码打印:a:3b:3a:5b:3我的问题是让它打印:a:3b:3a:5b:5我的目标:我正在用jess编写一个专家系统,在那个应用程序中,一个段的长度会有一个double值,现在double值不在一个段中;它在许多其他部分、比例类等中,所有这些都在引用它,等待它发生变化,以便它们可能满足某些规则。如果我无法更改那个double值,我就无法触发包

java - 从一个字符串中获取一个 double

我有一个包含以下内容的字符串:“按你的方式做,11.95苏格兰的历史,14.50,一日学习微积分,29.95”有没有办法从这个字符串中获取double? 最佳答案 使用正则表达式提取double,然后Double.parseDouble()解析:Patternp=Pattern.compile("(\\d+(?:\\.\\d+))");Matcherm=p.matcher(str);while(m.find()){doubled=Double.parseDouble(m.group(1));System.out.println(d)