草庐IT

integer-math

全部标签

Java:加/减 Math.ulp() 与 Math.nextAfter()

我正在尝试更详细地了解Java中的浮点运算。如果我正确阅读了文档,则以下内容适用于任何给定的双x:x-Math.ulp(x)==Math.nextAfter(x,Double.NEGATIVE_INFINITY);x+Math.ulp(x)==Math.nextAfter(x,Double.POSITIVE_INFINITY);问题:情况总是如此,还是存在一些结果会有所不同的异常(exception)情况? 最佳答案 这个程序:publicclassTest{publicstaticvoidmain(String[]args){do

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

我试过通过以下方法分离5.6(例如):privatestaticdouble[]method(doubled){intintegerPart=0;doublefractionPart=0.0;integerPart=(int)d;fractionPart=d-integerPart;returnnewdouble[]{integerPart,fractionPart};}但是我得到的是:[0]=5.0[1]=0.5999999999999996关于在不将数字转换为字符串的情况下执行此操作,您有什么建议吗? 最佳答案 使用BigDec

java - 两个Integer对象相加时里面的操作?

有人能解释一下当我们在java中添加两个Integer对象时的内部行为吗?(就像它是将Object拆箱成基元,然后添加两个整数,最后将它装箱到Integer对象)Integersum=newInteger(2)+newInteger(4); 最佳答案 编译成这样:Integersum=Integer.valueOf(newInteger(2).intValue()+newInteger(4).intValue());您可以通过查看使用javap-c获得的字节码反汇编来验证这一点。这里是对应newInteger(2).intValue

java - Java 中 Math.pow() 背后的算法是什么

我刚开始使用Java,作为第一个项目,我正在编写一个程序来查找给定数字的根(在本例中为立方根)。目前我正在尝试Newton-Ralphson来实现这一点。这是代码-importjava.util.Scanner;importstaticjava.lang.Math.abs;publicclassnewClass{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.println("Numberwhosecuberootuwannafind:");Doublenumber=inp

java - 使用 Integer.parseInt 转换 32 位二进制字符串失败

为什么这部分代码会失败:Integer.parseInt("11000000000000000000000000000000",2);Exceptioninthread"main"java.lang.NumberFormatException:Forinputstring:"11000000000000000000000000000000"据我了解,整数是一个32位值。上部代码中0和1的个数是32。如果有31,则代码有效。为什么会这样? 最佳答案 您的代码失败是因为它试图解析一个需要33位才能存储为有符号整数的数字。带符号的int是

java - Java Math.pow 的错误结果

如果你尝试运行下面的代码publicclassMain{publicstaticvoidmain(String[]args){longa=(long)Math.pow(13,15);System.out.println(a+""+a%13);}}你会得到“511858930140907528”13^15的正确值为51185893014090757,即比Math.pow返回的结果大5。有什么可能导致它的想法吗? 最佳答案 您已经超出了double浮点值中可用的有效数字位数(~15到16)。一旦这样做,您就不能指望结果的最低有效数字实际

java - 方法参数类型 [java.lang.Integer] 缺少 URI 模板变量 'studentId' - Spring MVC

当我尝试重定向到某个View时出现此错误。在一个处理程序方法中,我有://getstudentID,addittomodel,andreturnredirectURIIntegerstudentId=student.getStudentId();model.addAttribute("studentId",studentId);return"redirect:/students/{studentId}";但我没有在这个处理程序方法中获取参数studentId:@RequestMapping(value="/{student}",method=RequestMethod.GET)publ

java - 类型不匹配 : cannot convert from integer to boolean

publicbooleanclearSelection(){inti=0;if(!this.m_SelectedComps.isEmpty()){i=1;IteratorlocalIterator=this.m_SelectedComps.iterator();while(localIterator.hasNext())((AnnotComponent)localIterator.next()).remove();this.m_SelectedComps.clear();}returni;}如何将整数转为boolean值? 最佳答案

java - Math.cos() & Math.sin() 如何使用?

这个问题在这里已经有了答案:Math.cos()giveswrongresult(5个答案)关闭4年前。我正在使用Math.cos和Math.sin但它会返回如下意想不到的结果:AngleSinCos3540.8414-0.54033520.14110.98998350-0.958-0.2836为什么我会得到这些结果?

java - 使用 Collectors.summingInt 时如何获取自定义类型而不是 Integer?

我目前正在创建一个Map>像这样,其中Integer代表秒:Map>map=stream.collect(Collectors.groupingBy(x->x.getProject(),Collectors.groupingBy(x->x.getDate(),Collectors.summingInt(t->t.getDuration().toSecondOfDay()))));我怎样才能创建一个Map>? 最佳答案 要将Integer从Collectors.summingInt更改为Duration,您只需替换Collector与