草庐IT

java - Clojure 中的默认十进制文字不是 BigDecimal 类型有什么原因吗?

我了解到Clojure阅读器将带后缀“M”的十进制文字(如1.23M)解释为BigDecimal。而且我还知道没有“M”的十进制数字会变成Javadouble。但我认为普通十进制数是BigDecimal会更好,并且依赖于主机的十进制数有后缀,比如1.23H。因此,当数字由于IEEEdouble的精度限制而损坏或被截断时,我们可以很容易地注意到该数字是有精度限制的。另外,我认为更简单的表达应该是独立于主机的。除了时间性能之外,Clojure将文字十进制解释为Javadouble有什么原因吗?另外,我不认为时间性能是一个答案,因为它不是C/C++,并且可以像“1.23H”一样实现声明依赖于

java - 检索数组类名

我有问题。在一个方法中,我收到一个通用对象作为参数,我必须检索类的名称publicvoidmyMethod(Objecto)StringclassName=o.getClass().getName();...}它有效,除非我给方法数组。例如,如果向方法传递一个double组(double[]),getClass().getName()返回我[D我如何检索像double[]这样的东西? 最佳答案 [D表示double组。检查thislink有关类名的解释。为什么您会喜欢double[]之类的东西?

java - Java 中的双增量

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Howtoiteratebetween0.1fand1.0fwith0.1fincrementsinJava?我的部分程序需要在while循环中使用值:0.10.20.3...0.9所以我需要在该循环内提供它们。这是代码:doublex=0.0;while(x我需要准确的输出:0.10.20.30.40.50.60.70.80.9但它实际上给了我类似的东西:0.10.20.3000000000000000000000000040.40.50.60.799999999999999999999999990.899

java - 将 Double 转换为 long 而不会丢失精确值

我有一个Double对象,它在转换为long值时丢失了准确的值。Doubled=1.14*100System.out.println(d.longValue());上面的语句将打印:113。我要打印114。 最佳答案 如果您需要使用Math.round的确切114值:doubled=1.14*100;System.out.println(Math.round(d)); 关于java-将Double转换为long而不会丢失精确值,我们在StackOverflow上找到一个类似的问题:

java - 使用 Math.pow() 函数

我正在尝试用Java编写一个程序来计算Ricker小波的公式:但结果与真实不符。这是我正在使用的:privatestaticdoublerickerWavelet(doublet,doublef){doublep=(Math.pow(Math.PI,2))*(Math.pow(f,2))*(Math.pow(t,2));doublelnRicker=1-(2*p)*Math.exp(-p);returnlnRicker;}我是否错误地使用了数学函数? 最佳答案 要匹配公式,doublelnRicker=1-(2*p)*Math.ex

java - 获取 -1 和 1 之间的随机 double 值

我正在用Java创建一个神经网络,需要创建一个方法来初始生成随机权重。我需要创建一个返回-1和1之间的随机double值的函数,但不确定这样做的逻辑,因此非常感谢任何帮助。 最佳答案 您可以使用Random类的nextDouble()方法。Randomrng=newRandom();//togetadoublebetween-1and1returnrng.nextDouble()*2-1;//rng.nextDouble()isbetween0and1 关于java-获取-1和1之间的随

java - 如何将 java.util.List[java.lang.Double] 转换为 Scala 的 List[Double]?

我想以高效的方式将Javadouble列表(java.util.List[java.lang.Double])转换为Scaladouble列表(List[Double])。目前,我正在对列表进行映射,将每个double值转换为Scaladouble值。我不想映射每个值,而是正在寻找一种更有效的方法。importcollection.JavaConversions._importcollection.mutable.Buffervalj:java.util.List[java.lang.Double]=Buffer(newjava.lang.Double(1.0),newjava.lan

java - 为什么自动装箱/拆箱在这里失败?

在下面的程序中,结果是0.0被认为小于Double.MIN_VALUE。为什么?我们有一个解决方案(仅使用Doubles并使用compareTo),我想了解为什么拆箱在这里失败。importjava.util.Date;importjava.util.Calendar;importjava.math.BigDecimal;publicclassTest{publicstaticvoidmain(String[]args){doublemax=99999.9999;doublemin=Double.MIN_VALUE;Doubletest=0.0;System.out.println(m

java - 如何使用Java Math Commons CurveFitter?

如何使用MathCommonsCurveFitter将函数拟合到一组数据?我被告知要将CurveFitter与LevenbergMarquardtOptimizer和ParametricUnivariateFunction一起使用,但我不知道在ParametricUnivariateFunction梯度和值方法中写什么。另外,写完之后,如何得到拟合的函数参数呢?我的功能:publicstaticdoublefnc(doublet,doublea,doubleb,doublec){returna*Math.pow(t,b)*Math.exp(-c*t);} 最

java - 打印 JFrame 及其组件

我一直在一个大程序中工作,它的功能之一应该是打印主窗口的内容。我检查了API并找到了这个例子:http://docs.oracle.com/javase/tutorial/2d/printing/gui.html这非常有帮助,我试图通过将它放在我的打印按钮的actionperformed方法中来在我的程序中使用该代码:PrinterJobjob=PrinterJob.getPrinterJob();job.setPrintable(this);booleanok=job.printDialog();if(ok){try{job.print();}catch(PrinterExcepti