Tag: double

Java中的Double.MIN_VALUE是否大于零?

我在我的代码中发现了一个错误,它将Double(0.0)与Double.MIN_VALUE进行比较。 基本上,以下返回false: System.out.println(0.0 > Double.MIN_VALUE); 这怎么可能?

再次访问IEEE-754双(64位浮点)与长(64位整数)

我正在重新审视一个问题( 如何测试数字转换是否会改变值? ),就我所关注的问题而言,我已经完全解决了。 问题是检测特定数值何时会溢出JavaScript的IEEE-754数字类型。 之前的问题是使用C#,标记的答案完美无缺。 现在我正在执行完全相同的任务,但这次是在Java中,它不起作用。 AFAIK,Java使用IEEE-754作为其双数据类型。 所以我应该能够来回摆动它以强制失去精确度,但它往返。 对此感到困惑,我开始深入研究Java,现在我真的很困惑。 在C#和Java中,long的最小值和最大值都是相同的: long MIN_VALUE = -9223372036854775808L; long MAX_VALUE = 9223372036854775807L; AFAIK,这些值超出了IEEE-754中可表示的数字,因为为指数和符号保留了固定位。 // this fails in browsers that have stuck with the pure ECMAScript Number format var str = Number(-9223372036854775808).toFixed(); if (“-9223372036854775808” !== str) { throw new Error(“Overflow!”); } 这在Java中返回false (值= -9223372036854775808L): boolean invalidIEEE754(long value) { try { […]

Java如何从try,catch和最后返回一个值?

因此,当我在“try {}”中执行块代码时,我尝试返回一个值,它会出现“无返回值”。 这是我使用的代码,代表我的问题。 import org.w3c.dom.ranges.RangeException; public class Pg257E5 { public static void main(String[]args) { try { System.out.println(add(args)); } catch(RangeException e) { e.printStackTrace(); } finally { System.out.println(“Thanks for using the program kiddo!”); } } public static double add(String[] values) // shows a commpile error here that I don’t have a return value { try { int […]

Double.intValue()如何工作?

这段代码 Double dbl = 254.9999999999999; Integer integ = dbl.intValue(); System.out.println(integ); 显示254,但更多一个“9” Double dbl = 254.99999999999999; Integer integ = dbl.intValue(); System.out.println(integ); 它已经是255 ..为什么?

JAVA类型转换

我知道Math.pow方法在java中返回double 。 但是这段代码在我的程序中没有产生任何错误。 编译器是否自动将(int)添加到我的代码中,还是有其他原因? 在代码之前,我声明int sum = 0; 和arg是int的数组。 for(int i=0; i < arg.length; i++) { sum += Math.pow(2, i) * arg[i]; }

使用幂方法计算Java中的第n个根

我试图使用Math.pow(n, 1.0/3)在java中获得立方根Math.pow(n, 1.0/3)但因为它除了双精度数,所以它不会返回确切的答案。 例如,对于125,这给出了4.9999999999。 有解决办法吗? 我知道有一个立方根函数但我想解决这个问题,所以我可以计算更高的根。 我不想舍入,因为我想知道一个数字是否具有整数根,通过这样做: Math.pow(n, 1.0 / 3) % ((int) Math.pow(n, 1.0 / 3)) 。

在java中将double分成两部分“integer&fraction”的最佳方法是什么?

我试图通过以下方法分离5.6(例如): private static double[] method(double d) { int integerPart = 0; double fractionPart = 0.0; integerPart = (int) d; fractionPart = d – integerPart; return new double[]{integerPart, fractionPart}; } 但我得到的是: [0] = 5.0 [1] = 0.5999999999999996 如果不将数字转换为字符串,您对此有何建议?

如何获取小数点后的数字? (java)

double d = 4.321562; 有没有一种简单的方法从d中提取0.321562? 我试着看数学课,但没有运气。 如果这可以在不转换为字符串或转换为其他任何内容的情况下完成,甚至更好。

将字符串arraylist存储到双arraylist中?

我有一个字符串arraylist,其数字如[“51,073”,“51,074”,“51,073”]现在我想将其转换为Double ArrayList并计算数组列表中数字的总和。 这是代码: private ArrayList totals = new ArrayList(); private ArrayList demototal = new ArrayList(); String total = itemData.getString(ParseBarcode.KEY_TOTAL); totals.add(total); /*converting all values from totals array to Double and add to arraylist demototal*/ for (int i = 0; i < totals.size(); i++) { final String value = totals.get(i); double total_ary = Double.parseDouble(value); demototal.add(total_ary); } String […]

Java – 三元运算符奇怪的行为

我试图从一个double中删除fractional部分,以防它完全使用: (d % 1) == 0 ? d.intValue() : d 并遇到以下我不明白的行为: public static void main(String[] args) { Double d = 5D; System.out.println((d % 1) == 0); // true System.out.println((d % 1) == 0 ? d.intValue() : “not whole”); // 5 System.out.println((d % 1) == 0 ? d.intValue() : d); // 5.0 } 正如您在第三行中看到的那样,即使满足条件(d % 1) […]