草庐IT

java - double 值返回 0

这个问题在这里已经有了答案:Intdivision:Whyistheresultof1/3==0?(19个回答)关闭4年前。这是一个例子:Doubled=(1/3);System.out.println(d);这会返回0,而不是0.33333...,这是应该的。有人知道吗?

java - 为什么 (long)9223372036854665200d 给我 9223372036854665216?

我知道有精度错误的奇怪东西,但我无法理解,为什么(long)9223372036854665200d给我9223372036854665216? 最佳答案 9223372036854665200d是double类型的常量。但是,9223372036854665200不适合double而不会损失精度。double只有52位的尾数,而所讨论的数字需要63位才能准确表示。最接近9223372036854665200d的double是尾数等于1.111111111111111111111111111111111111111111110010

java - 如何检查 Double 值是否为负数?

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。如标题所示,我如何检查特定的Double是否为负数。这是如何获取Double实例(Double.parseDouble(data[2])想法、建议?

java - 计算矩阵行列式

我正在尝试计算矩阵(任意大小)的行列式,用于self编码/面试练习。我的第一次尝试是使用递归,这使我实现了以下实现:importjava.util.Scanner.*;publicclassDeterminant{doubleA[][];doublem[][];intN;intstart;intlast;publicDeterminant(doubleA[][],intN,intstart,intlast){this.A=A;this.N=N;this.start=start;this.last=last;}publicdouble[][]generateSubArray(double

java - 使用 JTransforms 库使用 FFT 计算自相关

我正在尝试使用以下代码计算时间序列中样本窗口的自相关。我正在对该窗口应用FFT,然后计算实部和虚部的大小并将虚部设置为零,最后对其进行逆变换以获得自相关:DoubleFFT_1Dfft=newDoubleFFT_1D(magCnt);fft.realForward(magFFT);magFFT[0]=(magFFT[0]*magFFT[0]);for(inti=1;i第一个问题是:可以看出这段代码将自相关结果映射到[0,1]范围内,虽然相关性应该在-1和1之间。当然很容易将结果映射到[-1,1]范围,但我不确定此映射是否正确。我们如何解释生成的autocorr数组中的值?其次,通过这段

java - 如何在 java 中设计要在 300 dpi 打印机上打印的图像

我想用Java制作图像并在300dpi标签打印机上将其打印在尺寸为150x100毫米的标签上。我如何制作图像,以便在位置(10,10)(以毫米为单位)处准确打印一条线(或任何类型的元素),并且该线在位置(10,50)处结束?换句话说:我的挑战不是如何制作一条线(我使用的是Graphics2D、bufferedImage),而是如何能够准确地说出这条线在标签上的位置(以毫米为单位)。有什么想法吗? 最佳答案 Java的打印API基本上假设一切都以72dpi完成。这意味着您可以将其用作转换为不同测量值的基础...这仅意味着您需要并开始衡

java - Java 中的梯度下降

我最近在Coursera开始了AI类(class),我有一个与梯度下降算法的实现相关的问题。这是我当前的实现(实际上我只是将数学表达式“翻译”成Java代码):publicclassGradientDescent{privatestaticfinaldoubleTOLERANCE=1E-11;privatedoubletheta0;privatedoubletheta1;publicdoublegetTheta0(){returntheta0;}publicdoublegetTheta1(){returntheta1;}publicGradientDescent(doubletheta

java - 为什么 anyValue 是 double 值时 Sonar 中的 anyValue % 1 "silly math"?

SonarQube提出重大违规Sillymathshouldnotbeperformed在我的代码中。描述说Certainmathoperationsarejustsillyandshouldnotbeperformedbecausetheirresultsarepredictable.Inparticular,anyValue%1issillybecauseitwillalwaysreturn0.但在我的例子中,anyValue是一个double值。这有效asintended为了我。这是实际的代码:doublev=Double.parseDouble(Utils.formatDoub

java - 为什么将 GC 限制为 1 个线程会提高性能?

我编写了一些简单的Java代码来人为地使用大量RAM,我发现当我使用这些标志时获得相关时间:1029.59seconds....-Xmx8g-Xms256m696.44seconds.....-XX:ParallelGCThreads=1-Xmx8g-Xms256m247.27seconds.....-XX:ParallelGCThreads=1-XX:+UseConcMarkSweepGC-Xmx8g-Xms256m现在,我明白了为什么-XX:+UseConcMarkSweepGC会提高性能,但是为什么当我限制为单线程GC时我会得到加速?这是我写得不好的Java代码的产物,还是这也适

java - 错误消息 "Attempt to split long or double on the stack"表示什么?

我的代码出现以下错误:Attempttosplitlongordoubleonthestack我对这个错误的来源一无所知,也不知道如何调试它。这表明什么样的问题?我该如何解决?[ERROR][MonMay2314:29:46IST2011][(class:org/apache/jsp/dashboard_jsp,method:_jspServicesignature:(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V)Attempttosplitlongordoubleon