草庐IT

numbers_float

全部标签

java - float 和双重混淆

看到以下代码片段的结果后,我对float的行为感到困惑。floatvar1=5.4f;floatvar2=5.5f;if(var1==5.4)System.out.println("Matched");elseSystem.out.println("Oops!!");if(var2==5.5)System.out.println("Matched");elseSystem.out.println("Oops!!");输出:Oops!!Matched这是因为十进制数无法以base2二进制格式准确表示吗?要么这是因为我将float类型变量与double类型进行比较时的精度吗?如果是,那么为

java - float 与双

如果将两个浮点值比较为DOUBLE但如果将它们作为FLOAT进行比较,则返回true?作为我的小组项目的一部分,我正在编写一些程序来比较任何给定类型的两个数值。我一共需要处理4种类型:double、float、int和long。所以我想将double和float组合成一个函数,也就是说,我只是将任何float转换为double并进行比较。这会导致任何不正确的结果吗?谢谢。 最佳答案 如果您将double转换为float并且它们之间的差异超出了float类型的精度,您可能会遇到麻烦。例如,假设您有两个double值:9.8765432

java - 如何将 float 四舍五入到最近的四分之一

有时我需要将float四舍五入到最近的四分之一,有时需要四舍五入到最近的一半。我用的一半Math.round(myFloat*2)/2f我可以用Math.round(myFloat*4)/4f。但是还有其他建议吗? 最佳答案 你只需要:Math.round(myFloat*4)/4f因为二分之一也是四分之二,所以这个方程式也可以处理你的半舍入。您不需要为二分之一或四分之一舍入做两个不同的方程式。代码示例:publicclassMain{publicstaticvoidmain(String[]args){floatcoeff=4f;

java - 涉及魔数(Magic Number)的全局常量的最佳实践

为了避免魔数(MagicNumber),我总是在我的代码中使用常量。在过去,我们曾经在无方法的接口(interface)中定义常量集,现在已经成为一种反模式。我想知道最佳做法是什么?我说的是全局常量。枚举是在Java中存储常量的最佳选择吗? 最佳答案 对于实际数字有意义而不仅仅是标签的魔数(MagicNumber),您显然不应该使用枚举。那么老款还是最好的。publicstaticfinalintPAGE_SIZE=300;当您只是标记某些东西时,您会使用枚举。enumDrink_Size{TALL,GRANDE,VENTI;}有时

java如何使 float 的用户友好百分比输出

我有以下代码:floatfl=((float)20701682/(float)20991474);这给了我fl=0.9861948。我想将0.9861948转换为2%,因为2%已下载。我正在下载文件并计算进度。如有任何帮助,我们将不胜感激。 最佳答案 你在代码中有常量值,你应该用代表下载量和总大小的变量替换它们:floatdownloaded=50;floattotal=200;floatpercent=(100*downloaded)/total;System.out.println(String.format("%.0f%%",

java - 性能问题 : Fastest way to convert hexadecimal char to its number value in Java?

我想将表示十六进制值(大写或小写)的字符转换为字节,例如'0'->0,'1'->1,'A'->10,'a'->10,'f'->15etc...我会非常频繁地调用此方法,因此性能很重要。有没有比使用预初始化的HashMap更快的方法?从中获取值(value)?回答这似乎是在使用switch-case和JonSkeet的直接计算解决方案之间的折腾-不过,switch-case解决方案似乎略有优势。Greg的数组方法胜出。以下是各种方法运行200,000,000次的性能结果(以毫秒为单位):Character.getNumericValue:8360Character.digit:8453H

java - org.apache.commons.codec.DecoderException : Odd number of characters

在url参数中发送十六进制字符串并尝试在服务器端将其转换为字符串。使用以下javascript编码代码转换用户输入的字符串functionencode(string){varnumber="";varlength=string.trim().length;string=string.trim();for(vari=0;i现在我正尝试在Java代码中解析十六进制字符串419以获取俄语字符Йbyte[]bytes="".getBytes();try{bytes=Hex.decodeHex(hex.toCharArray());sb.append(newString(bytes,"UTF-8

java - 将 List<String> 转换为 List<Integer>(或任何扩展 Number 的类)

我想创建一个非常通用的实用方法来获取任何Collection并将其转换为从Number(Long、Double、Float、Integer等)扩展的用户可选类的Collection我想出了这段代码,它使用GoogleCollections来转换Collection并返回一个不可变列表。importjava.util.List;importcom.google.common.base.Function;importcom.google.common.collect.ImmutableList;importcom.google.common.collect.Lists;/***Takesa

java - 显示 double 和 float 时如何对齐小数点

如果我有以下小数点数:Double[]numbers=newDouble[]{1.1233,12.4231414,0.123,123.3444,1.1};for(Doublenumber:numbers){System.out.println(String.format("%4.3f",number));}然后我得到以下输出:1.12312.4230.123123.3441.100我想要的是:1.12312.4230.123123.3441.100 最佳答案 可能有点困惑的部分是String.format("4.3",number)

Java 泛型和 Number 类

我想创建一个比较数字的方法,但可以有一个数字的任何子类的输入。我已经考虑过以下列方式执行此操作...publicstaticvoidevaluate(TinputNumber){if(inputNumber>=x){...}}在执行比较之前,我需要获得实际的原始值,Number类具有为每个原始值检索它的方法,但我想要一种选择正确原始值的干净方法。这可能吗?干杯 最佳答案 NumberAPI没有提供获取值的简洁方法;你必须使用instanceof。一种解决方案是将值“折叠”为两种类型:long和double。这样,您就可以使用此代码: