草庐IT

malign-double

全部标签

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();

java - "Double casting"

我目前正在辅导一名高中生的APJava,她问了我一个关于“双重类型转换”的问题。我以前从未听说过这个术语,但显然她的老师希望她在即将到来的期末考试中知道它。她的老师提供的示例是,如果您想将整数转换为字符串,则必须执行以下操作才能避免编译器错误:Integeri=newInteger(5);Strings=(String)(Object)i;问题是:你什么时候想在现实生活中这样做?老师只提供了导致运行时错误的例子。另外,我从来不知道有一个术语来描述这个,但这样做似乎是个坏主意,因为只有当两种类型不兼容时才会出现错误。谢谢! 最佳答案

java - Double.doubleToLongBits(x) 的含义

我正在编写一个类Vec2D,表示一个二维vector。我将x和y存储在double中。当要求生成equals(Objectobj和hashCode()时,eclipse生成了这个:@OverridepublicinthashCode(){finalintprime=31;intresult=1;longtemp;temp=Double.doubleToLongBits(x);result=prime*result+(int)(temp^(temp>>>32));temp=Double.doubleToLongBits(y);result=prime*result+(int)(temp^

java - 将 OptionalDouble 转换为 Optional <java.lang.Double>

我有一个构建列表的方法,我希望它返回列表的平均值作为可选值。但是,当我使用Java8计算平均值时,我总是将返回值作为OptionalDouble。我如何转换OptionalDoubletoOptional?下面是我的平均计算代码:privatestaticOptionalaverageListValue(){//BuildlistListtestList=newArrayList();testList.add(...);......returntestList.stream().mapToDouble(value->value).average();}谢谢。

java - 为什么 Bigdecimal(double d) 构造仍然存在?

我注意到这个构造函数存在很大的痛苦(即使在StackOverflow上也是如此)。人们使用它,即使文档明确指出:Theresultsofthisconstructorcanbesomewhatunpredictablehttp://java.sun.com/javase/6/docs/api/java/math/BigDecimal.html#BigDecimal(double)我什至见过JSR-13正在APPROVED建议说明:Existingspecificationsthatmightbedeprecated:WeproposedeprecatingtheBigDecimal(d

java - 如何为给定的语言环境和小数位数格式化 double 值?

如何使用NumberFormat为给定的Locale(默认语言环境就足够了)和给定的数量格式化double值小数位?例如,我有这些值:doubled1=123456.78;doubled2=567890;我想以下列方式打印它们,例如使用美国语言环境和2位小数:123,456.78567,890.00在这种情况下我实际上并不关心舍入模式,因为这些double值是从具有给定比例的BigDecimal获得的,因此它们的小数位数总是小于或等于我要打印的小数位数。编辑:为了让事情更清楚一点,问题是我想以依赖于区域设置的方式显示货币,但小数位数是固定的。上面的示例显示,如果系统区域设置为en_US

java - Gson 。将整数反序列化为整数而不是 double

我有一个带有任意值的json对象。我想在map中反序列化它。一切正常,除了将整数转换为double。参见示例:{"id":1,"inner_obj":{"key":"value","num":666,"map":{"key":"value"}}}反序列化为这个(map.toString()):{id=1.0,inner_obj={key=value,num=666.0,map={key=value}}}是否有一些简单的方法可以将“id”和“num”反序列化为整数而不是double? 最佳答案 JSON中没有整数类型。1和1.0是一样