草庐IT

Double-checked

全部标签

java - 为什么在 Java 中允许将 double 转换为 char?

为什么charc=(char)65.8;允许在Java中使用?因为65.8不是一个确切的Unicode值,它不应该抛出错误吗?我知道double被截断为整数,在本例中为65,但在我看来允许程序员进行这样的转换似乎是糟糕的设计。 最佳答案 这就是所谓的缩小类型转换。来自oracledocs:22specificconversionsonprimitivetypesarecalledthenarrowingprimitiveconversions:shorttobyteorcharchartobyteorshortinttobyte,s

java - 使用原始 double 值初始化 Double 对象

当一个java.lang.Double对象在没有调用构造函数而是使用原语的情况下被初始化时会发生什么?它似乎有效,但我不太确定为什么。编译器是否正在进行某种隐式转换?这是使用Java5。publicclassFoo{publicstaticvoidmain(String[]args){Doubled=5.1;System.out.println(d.toString());}} 最佳答案 这叫做Autoboxing这是Java5中添加的一个特性。它会自动在基本类型和包装类型之间进行转换,例如double(基本类型)和java.lan

java - 在Java Map <Integer, Double[]>中,是否需要在获取和修改后放置Double[]?

一个可能很蹩脚的快速问题。在下面的代码中:MapdataMap=newMap();dataMap.put(1,newDouble[]{100,100});Double[]dob=dataMap.get(1);dob[0]=100;dob[1]=200;dataMap.put(1,dob);是否需要最后的“dataMap.put”指令?或者dataMap.get(1)会产生对数组的引用,然后在后面的语句中直接修改该数组。我知道,在可变对象(例如Map)的情况下,Map.get()会给我所需对象的引用,但是有一个Double数组(其元素类型例如Double是不可变的)我不确定我是否得到了对

java - 无法在基本类型 double 上调用 compareTo(double)

returnarray[index1].compareTo(array[index2]);行提供了一个错误“无法在基本类型double上调用compareTo(double)”。如何解决这个问题?/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*//*::Thisfunctionimplementsacomparatorofdoublevalues:*//*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/pr

java - 跳棋游戏 : Not Error Checking Correctly?

我正在为一项作业制作跳棋游戏。除了一件奇怪的事情外,整个事情都按照它应该的方式进行。这是我的董事会:我通过给出源行和列,然后是目标行和列来移动。move(intsrcR,intsrcC,intdestR,intdestC)如果我尝试将一block移动到无效点(不是对角线),我应该打印出一个错误。因此,如果我尝试从52->42移动一block,它会给我一条错误消息。if(destR==srcR+1||destR==srcR-1&&destC==srcC+1||destC==srcC-1){//codecodecode}elsemessage="InvalidMove!Canonlymov

java - 如何以最小增量改变 double

是什么东西坏了还是我不明白发生了什么?staticStringgetRealBinary(doubleval){longtmp=Double.doubleToLongBits(val);StringBuildersb=newStringBuilder();for(longn=64;--n>0;tmp>>=1)if((tmp&1)==0)sb.insert(0,('0'));elsesb.insert(0,('1'));sb.insert(0,'[').insert(2,"][").insert(16,"][").append(']');returnsb.toString();}publ

java - 从 double 中删除尾随零

如果数字没有,我想删除所有尾随零而不截断或四舍五入。例如,数字可能类似于12.0,在这种情况下,应删除尾随零。但这个数字也可能是几乎不合理的东西,比如12.9845927346958762...一直在屏幕边缘。有没有一种方法可以设置DecimalFormat或其他一些类来削减尾随零,同时保持不合理性不变? 最佳答案 如果您愿意切换到BigDecimal,则有一个#stripTrailingZeroes()实现此目的的方法。 关于java-从double中删除尾随零,我们在StackOve

Java Swing : Implementing a validity check of input values

在我的Swing应用程序中,用户必须在切换到下一个窗口之前插入数字和值。现在,作为一个干净的程序,我会检查每个输入是否有效,如果无效,则会显示一条错误消息,并且不会打开下一个窗口。此检查的结构如下(示例):ButtonbuttonToOpenNextWindow=newJButton("next");button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(checkValidty){//(...)newWindowA();frame.dispose();//(*)}}

java - 如何在 Java 中获取 Double 的最大最安全整数

考虑到Java的doubles是double-precisionfloating-point数字。并且不丢失精度的最大整数是9007199254740991或253-1是否有任何干净的方法来获取此值?例如,像JavaScript中的常量MAX_SAFE_INTEGER 最佳答案 有一个名为sun.misc.DoubleConsts的内部JDK类它有一些常量,您可以使用这些常量来生成您正在寻找的值,使用"accpetable"magicnumbers1和2,但它没有自己定义的数字。publicstaticlongMAX_SAFE_VA

java - 使用Hudson中的Ant或其他CI工具自动 check out 并编译Eclipse项目的最佳方法?

我们有几种产品具有很多共享的代码,并且必须保持几个版本。为了解决这个问题,我们使用了许多Eclipse项目,一些包含库jar,一些包含共享源代码(在一些项目中,是为了避免获得具有大量依赖项的巨大堆,同时能够从头开始编译所有内容,以确保源和二进制文件是持续的)。我们使用projectSet.psf来管理这些项目,因为它们可以直接从CVS中提取所有项目并留下一个充分准备的工作区。我们不直接构建或使用Maven。现在,我们希望能够将所有这些项目及其各个版本放入一个ContinuousIntegration工具中(我喜欢Hudson,但这只是一个口味问题),这实际上意味着我们需要一种自动方式来