草庐IT

my_variable_double

全部标签

Java null Double 对象格式化

这是Java的正确行为吗?publicstaticvoidmain(String[]args){StringfloatFormat="%4.2f\n";Doubled=null;Strings=String.format("%4f\n"+floatFormat,d,d);System.out.print(s);}输出:nullnu我的解决方法是硬编码“null”这个词,这很烦人。Stringthing=(d!=null)?String.format(floatFormat,d):"null\n"; 最佳答案 在Javadoc中的“一

java - 比较 double 时的不同行为

这个问题在这里已经有了答案:Isfloatingpointmathbroken?(31个答案)关闭6年前。您好,我知道计算机受数字精度的限制,有些数字无法用二进制表示。这就是为什么我要问为什么这样比较(0.1*3)==0.3在Java语言中计算为false而在C中它计算为true,对我来说Java行为更直观一点。提供的任何答案都不能回答我的问题,为什么它们有不同的行为,因为它们都使用IEEE754标准。@更新我正在使用ideone来测试条件。

java - MATLAB 不能从 Java 读回 double[] 数组吗?

考虑MyClass.java:publicclassMyClass{publicvoidfirstfunction(doublefwd[]){fwd[0]=42;}publicvoidsecondfunction(Doublefwd[]){fwd[0]=newDouble(42);}}这两个函数都在fwd中返回值42,对吗?我想从MATLAB中访问这个值42:myobj=MyClass;var1=0.0;myobj.firstfunction(var1);fprintf('%1.1f',var1);%//...var1isstill0.0...:-(var2=javaArray('ja

java - 最佳实践 : instance variables filling over time

我是面向对象编程(在java中)概念的新手,我经常遇到以下设计问题:我经常创建带有在初始化时未知的实例变量的类。这些变量会随着时间的推移而填充。这不是一个真正的问题,因为这些变量在被填充之前都是空的,因此我的问题更多是关于这种情况下的最佳实践。我举个例子。我有一个类Car。每辆Car都有一个color、vMax、weight、horsepower等。当初始化Car时,只有它的color、weight和horsepower是已知的。-->汽车(颜色、重量、马力)现在可以计算vMax(比方说:weight/horsepower)。令我困惑的是,初始化后Car是“不完整的”,这意味着vMax

java - Spring MVC(RESTful API): Validating payload dependent on a path variable

用例:让我们使用POSTHTTP动词设计一个RESTful创建操作-创建票证,其中创建者(分配者)指定票证受让人我们正在以下位置创建一个新的“票”:/companyId/userId/ticket我们提供包含assigneeId的工单正文:{“受让人ID”:10我们需要验证assigneeId属于URL中的公司-companyId路径变量到目前为止:@RequestMapping(value="/{companyId}/{userId}/ticket",method=POST)publicvoidcreateTicket(@Valid@RequestBodyTicketnewTicke

java - 为什么 long 和 double 在 Java 类的常量池中占用两个条目?

JavaVirtualMachineSpecification声明8字节(例如long和double)常量占用constant_pool表中的两个条目,不像其他常量只占用每一个条目。该规范还提到这是一个糟糕的选择,但没有解释原因。这个设计决定背后的最初原因是什么?当时的好处是什么? 最佳答案 明确的答案需要与参与Java早期开发的人员交谈。但是,我认为很明显,字节码格式最初设计时考虑的是朴素解释器的性能。考虑如何编写一个非常简单的Java字节码解释器。没有JIT,没有优化等。您只需执行每条指令即可。假设常量池在加载时已被解码为32位

java - 在 Windows 上监听 "open file with my java application"事件

标题很乱,不知道怎么用几句话来解释:我有一个读取*.example文件的java应用程序。由于install4j,我还添加了一个文件关联,因此当用户双击任何扩展名为*.example的文件时,我的应用程序就会启动install4j似乎在args[]中发送文件路径,因此打开该文件并在我的应用程序中显示它应该很容易。但是如果应用已经在运行会怎样?我只能允许应用程序的一个实例,那么我怎么知道用户正在打开一个文件?我找到了这个:http://resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/S

java - 对于 double f,float g,如何找到最大的 int i,使得 i*g <= f

更新:谢谢凯文,我的意思是标题中的这是正确的吗?在这个问题上花费了令人尴尬的时间之后,这是我所管理的最好的:publicintcandidate_answer(doublef,floatg){inttest=(int)Math.floor(f/g);if((test+1)*g背景:该应用程序是一个简单的游戏,我从以前的程序员那里接管了它的所有权。奇怪的是,他选择在成员变量和参数变量中随意混合float和double,因此有很多不必要的隐式和显式转换。玩家坐标为doublex,y(假设玩家是一个点)。有一个floatTILE_SIZE,世界是一些行数和列数的图block,加上一些通用的越

java - 为什么不能将 Byte 对象/字节值转换为 Double 对象?从 Byte 到 Double 的转换会影响精度吗?

publicclassPrimitive{publicstaticvoidmain(String[]args){bytex=5;Doubley=(Double)x;//Error:CannotcastfrombytetoDouble.Byten=7;Doublem=(Double)n;//Error:cannotcastfromBytetoDouble.doublec=n;//workingright..."doubleisprimitiveandByteisobject".}}阻止将Byte转换为Double有什么意义?..如果我没记错的话,出于精确原因我知道DoubletoByte

Java - 通过转换为 double 在 long 中查找前导零

在找到方法之前Long.numberOfLeadingZeros(longi),我将多头投向double并使用Math.getExponent(doubled).想法是找到long的double表示,使用指数获得最高设置位,然后从64中减去它以获得前导零的数量。这主要是有效的,但偶尔会偏离1。使用以下for循环来突出问题:for(inti=0;i>>i;doublemin=Long.MIN_VALUE>>>i;doubleneg=-1L>>>i;System.out.format("Max:%-5dMin:%-5d-1:%-5d%n",Math.getExponent(dmax),Ma