草庐IT

float_exception

全部标签

java - 哪种类型的网络应用程序实际上会受到 float 错误的影响?

有一种简单的方法可以完全锁定大量JVM:classrunhang{publicstaticvoidmain(String[]args){System.out.println("Test:");doubled=Double.parseDouble("2.2250738585072012e-308");System.out.println("Value:"+d);}}或者,挂起编译器:classcompilehang{publicstaticvoidmain(String[]args){doubled=2.2250738585072012e-308;System.out.println("

java - 为什么 0.1 正确地表示为 float ? (我知道为什么不是 2.0-1.9 的结果)

我最近阅读了很多关于浮点表示的内容(包括:HowToRepresent0.1InFloatingPointArithmeticAndDecimal)。现在我明白0.1不能正确表示,当我这样做时:System.out.println(2.0f-1.9f);我永远得不到准确的结果。所以问题是:为了正确打印0.1,如何在以下代码中表示0.1f?那是某种合成糖吗?在我上面提到的文章中说:0.1在内存中表示为0.100000001490116119384765625。那么为什么我没有得到这段代码的输出:System.out.println(0.1f);Java如何处理这个问题?

java - 小服务程序 : SEVERE: Allocate exception for servlet

以下堆栈跟踪是我尝试访问一个servlet时得到的,它似乎在Tomcat管理器中运行良好。11Sep,201211:50:12AMorg.apache.catalina.core.ApplicationContextlogINFO:MarkingservletLoginServletasunavailable11Sep,201211:50:12AMorg.apache.catalina.core.StandardWrapperValveinvokeSEVERE:AllocateexceptionforservletLoginServletjava.lang.Error:Unresolv

java - 必须指定 L 表示 long、F、D 表示 float、double 的原因

这里有几个相关的问题。根据标题,如果我们将变量类型指定为long或float、double,为什么它是一个要求?编译器不会在编译时评估变量的类型吗?Java将所有整型文字视为int-这是为了减轻无意内存浪费的影响吗?所有浮点文字都是double-以确保最高精度? 最佳答案 当你有一个常量时,看起来相同但实际上不同的值之间存在细微差别。此外,由于引入了自动装箱,您会得到与less截然不同的结果。考虑将0.1乘以0.1作为float或double并转换为float会得到什么。floata=(float)(0.1*0.1);floatb=

java - float 和 double 数据类型适合存储经纬度吗?

这个问题在这里已经有了答案:Whatistheidealdatatypetousewhenstoringlatitude/longitudeinaMySQLdatabase?(22个答案)关闭7年前。我在服务器端(JAVA平台)存储纬度和经度。为了存储这些值,我在服务器端使用了float和double数据类型。我开始知道float和double不是推荐的原始数据类型(不建议以专业方式使用货币),因为float和double有舍入精度问题。在我的例子中,我只是在服务器端比较存储的坐标(纬度和经度)。问题1:将坐标与数据类型(float或double)进行比较会在将来产生任何问题吗?问题2

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如何使 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 - Tomcat 中的 org.jasypt.exceptions.EncryptionOperationNotPossibleException

我正在使用Jasypt加密库来加密/解密一些文本。此代码嵌入到WAR文件中并部署到服务器。在本地运行时,在单元测试中,加密/解密循环工作得很好。我使用Jetty来开发应用程序。该代码在该服务器中完美运行。出于某种原因,部署到Tomcat会中断它,但出现以下异常:仅供引用,我在本地和服务器环境中都安装了强大的加密库,并且我使用的是最新的1.6版本(补丁级别25)。org.jasypt.exceptions.EncryptionOperationNotPossibleException异常没有消息。代码是完全对称的。我把它贴在这里进行检查。以下是相关位:我找到一个oldNabblepost