草庐IT

T_DOUBLE_ARROW

全部标签

java - assertEquals(Double, Double) 和 assertEquals(double, double, delta) 之间的 Junit 区别

我有一个junit测试断言两个Double对象,具有以下内容:Assert.assertEquals(Doubleexpected,Doubleresult);这很好,然后我决定将其更改为使用原始double而不是它被弃用,除非您还提供delta。所以我想知道在这个assertEquals中使用Double对象或原始类型有什么区别?为什么使用没有增量的对象可以,但是不推荐使用没有增量的基元?Java是否在后台执行某些已考虑默认增量值的操作?谢谢。 最佳答案 没有assertmethodinJUnit带签名assertEquals(D

java - 从 java BigDecimal 转换为 double 时丢失精度

我正在使用一个完全基于double的应用程序,并且在一个将字符串解析为double的实用程序方法中遇到了问题。我找到了一个修复程序,其中使用BigDecimal进行转换解决了这个问题,但是当我将BigDecimal转换回double时又引发了另一个问题:我失去了几个精度位置。例如:importjava.math.BigDecimal;importjava.text.DecimalFormat;publicclasstest{publicstaticvoidmain(String[]args){Stringnum="299792.457999999984";BigDecimalval=n

java - 在 Apache Poi 3.7 中以特定格式在数字单元格中写入 Double 值

我需要使用特定格式在数字单元格中写入double值,我的意思是,生成的xls必须具有包含double值的数字单元格,例如:8,1。我正在尝试类似的东西:DecimalFormatdFormat=newDecimalFormat("##.#");dFormat.format(doubleValue);但是,由于格式化方法返回一个字符串,无论我是否将单元格创建为数字,它们始终表现为文本单元格。我在考虑两种选择:强制单元格表现为数字单元格。忘记DecimalFormat并使用Double类指定逗号作为小数点分隔符,但我不确定是否可行。有什么想法吗? 最佳答案

java - 将 double 转换为二进制表示?

我试图将double转换为其二进制表示,但使用此Long.toBinaryString(Double.doubleToRawLongBits(d))没有帮助,因为我有大量数字,Long不能不存储它们,即2^900。 最佳答案 Long.toBinaryString(Double.doubleToRawLongBits(d))似乎工作正常。System.out.println("0:0b"+Long.toBinaryString(Double.doubleToRawLongBits(0D)));System.out.println("

java - 给定浮点值,从 double 到 float 的可能有损转换?

这个问题在这里已经有了答案:Whatdoes"possiblelossyconversion"meanandhowdoIfixit?(1个回答)whyfisplacedafterfloatvalues?(9个回答)关闭2年前。如果我没记错的话,“0.5”是十进制数;因此,使它成为一个浮点值。但为什么java告诉我它是double的?return语句被java检测为错误,说:“不兼容的类型:从double到float的可能有损转换”publicfloattypeDmgMultiplr(Stringtype,Stringtype2){if(type.equalsIgnoreCase("gr

java - 集合 <Double> 到 DoubleStream

这个问题在这里已经有了答案:HowdoIgetanIntStreamfromaList?(2个答案)关闭7年前。我正在寻找最优雅的方式来创建DoubleStream(用于使用总和、平均值等)来自List.目前我有这样的代码:Listdoubles=getListOfDoubles();doublesum=doubles.stream().mapToDouble(d->d).sum();也许有人可以建议更短的方法?

java - 我如何使用 JUnit 和 Hamcrest 比较 double ?

我正在使用JUnit和Hamcrest编写单元测试。我一直在使用以下方法比较double值:assertThat(result,is(0.5));但是,我现在需要比较计算值,但我不想与完整的double值进行比较。相反,我想比较接近度。我发现了一个名为IsCloseTo的类,但我不确定如何在assertThat中使用它,而且我在网上找不到任何示例。执行以下操作的正确语法是什么?//Ican'tdothisasIneedtoknowwhatmethods/classeswhateverIshouldbeusing//isCloseTodoesn'texist.assertThat(res

java - 比 double 更精确的数字数据类型?

Java中是否有一种数据类型可以比double更精确地存储十进制数? 最佳答案 是的,使用java.math.BigDecimal类(class)。它可以非常精确地表示数字。如果你只需要大整数,你可以使用java.math.BigInteger相反。它们都扩展了java.math.Number.如果需要,您甚至可以使用现有的替身:doubled=67.67;BigDecimalbd=newBigDecimal(d);并且您可以使用JDBC从数据库中获取BigDecimal值:ResultSetrs=st.executeQuery()

java - 如何在java中替换 "(double quotes) in a string with\"

我的字符串变量strVar的值为'"value1"',我想用'\"'替换值中的所有双引号。所以之后替换值看起来像'\"value1\"'如何在Java中执行此操作?请帮助我。 最佳答案 你在找str=str.replace("\"","\\\"")DEMO我会避免使用replaceAll,因为它使用正则表达式语法来描述要替换的内容和如何替换,这意味着\必须在字符串"\\"而且在正则表达式\\中(需要写成"\\\\"字符串)这意味着我们需要使用str=str.replaceAll("\"","\\\\\"");或者可能是小清洁工:st

java - 无论如何要从 Double 转换为 BigInteger?

有没有办法将double值转换为BigInteger?doubledoubleValue=64654679846513164.2;BigIntegerbigInteger=(BigInteger)doubleValue;我尝试转换它,但它没有用。 最佳答案 如果您想将double的整数部分存储到BigInteger中,那么您可以将其转换为BigDecimal然后然后一个BigInteger:BigIntegerk=BigDecimal.valueOf(doubleValue).toBigInteger();