草庐IT

double-linked

全部标签

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 7 - LinkOption - 为什么 NOFOLLOW_LINKS 是唯一可用的选项?

我认为标题说明了一切。我将如何指定FOLLOW_LINKS?为什么要创建一个只有一个选项的枚举?例如,方法java.nio.file.Files.getLastModifiedTime(Path,LinkOption...)将LinkOption-s数组作为参数。你必须通过一些东西,但你只能通过一个可用的选项。这让我很吃惊,很想了解更多。 最佳答案 跟随链接是默认行为。即,如果您不指定NOFOLLOW_LINKS,则会跟踪链接。来自documentationFiles.getLastModifiedTime()方法(强调我的):Th

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

Java 8 - 检查 Double 是否在范围内?

我知道对于整数,Java8具有IntStream,它允许您生成范围并检查它们,例如IntStreamrange=IntStream.rangeClosed(5,10);range.anyMatch(x->x==4);我的问题是我有Double范围,定义为:Light[0,3.0)Moderate[3.0,6.0)Vigorous>=6.0根据这些范围检查的变量是一个doubleval。我只是想知道Java8是否对此有任何方便的解决方案。出于各种原因,我不想使用复杂的if/else树。 最佳答案 如pkpnd在其comment中所述,

java - Double != null 导致 NullPointerException

我有以下代码片段让我感到困扰,其中currentRate和secondCurrentRate是正确定义的Double对象:(currentRate!=null&&secondCurrentRate!=null)?currentRate*secondCurrentRate:null;这应该检查每个Double是否为空,并相应地分配值null。但是,如果secondCurrentRate为null,则会导致NullPointerException。我已将代码段更改为:(currentRate==null|secondCurrentRate==null)?null:currentRate*s

java - 将 double 转换为另一种数字类型

有些事情让我感到困惑,我没有找到太多关于VM规范的信息。这有点晦涩,如果有人能向我解释,那就太好了。这几行代码......doublemyTest=Double.MAX_VALUE;System.out.println("1.float:"+(float)myTest);System.out.println("2.int:"+(int)myTest);System.out.println("3.short:"+(short)myTest);System.out.println("4.byte:"+(byte)myTest);.....产生这个输出:float:无限整数:21474836

java - 如何用可变数量的十进制数字格式化 double

我正在执行一项任务,我在处理下面提到的负面情况时感到震惊如果值小于1,那么我想为其格式化(添加)4个小数点。例如,如果值为0.4567,那么我需要0.4567否则,如果该值大于1格式且只有2位数字。例如,如果值为444.9,那么我需要444.90上面提到的一切都工作正常,但遇到以下情况也就是说,如果值小于1并且以零结尾(0.1000,0.6000),打印0.2000是没有意义的,所以在这种情况下我希望输出仅为0.20下面是我的程序packagecom;importjava.text.DecimalFormat;publicclassTest{publicstaticvoidmain(S

J-Link RTT Viewer使用教程(附代码)

目录 RTT(RealTimeTransfer)简介使用教程常用API介绍RTT缓冲大小修改使用printf重定向官方例程RTT(RealTimeTransfer)简介平常调试代码中使用串口打印log,往往需要接出串口引脚,比较麻烦,并且串口打印速度较慢,串口的中断可能会影响代码的执行效率。SEGGERRTT支持使用J-link调试器输出来自目标微控制器的信息,也可以接收输入,并且在高速度交互的同时不会影响目标处理器的实时性,可以省掉平常打印日志用的串口。SEGGERRTT可用于任何J-Link型号和任何支持后台内存访问的目标处理器,即Cortex-M和RX目标。RTT支持两个方向、多个通道,

java - 使用 NumberFormat 具有两位小数的 double 值

我正在使用java.text.NumberFormat使用conman分隔格式将我的double值转换为两位小数。我的行代码是:NumberFormat.getNumberInstance(Locale.US).format(53508));此代码会将53508转换为53,508格式,但我需要53,508.00格式(小数点后两位)。 最佳答案 谢谢friend我解决了....:)下面是代码行NumberFormatformatter=NumberFormat.getInstance(Locale.US);formatter.setM