草庐IT

java - Java的浮点实现是否还有Kahan发现的问题?

我今晚读了Kahan的几篇论文,还有他的famousrant反对Java。在我深入研究JVM规范之前,自从这方面的最初咆哮以来有什么变化吗?例如:设置舍入模式访问标志免费获得更高的精度...?谢谢,妮可。 最佳答案 教授Kahan的学生JoeDarcy成为Sun的“浮点沙皇”。他的博客条目"EverythingOldisNewAgain",是了解他为纠正问题所做的工作的更多信息的切入点。有了很大的改进。 关于java-Java的浮点实现是否还有Kahan发现的问题?,我们在StackOv

java - IBM 到 IEEE 浮点转换

Java中是否有任何标准方法可以将IBM370(以字节形式)转换为IEEE格式?任何转换算法都会有所帮助..我尝试编写Java代码..但我不明白我哪里出错了。当我将输入作为-2.000000000000000E+02时,我得到的值为-140.0(IEEE格式)。在其他情况下,当我将输入作为3.140000000000000E+00时,我得到的值为3.1712502374909226的IEEE格式任何对此的帮助将不胜感激privatevoidconversion(){byte[]buffer=//bytestoberead(8bytes);intsign=(buffer[0]&0x80)

java - 关于浮点型精度

我不明白这是为什么floatf=Integer.MAX_VALUE;System.out.println(Integer.MAX_VALUE);System.out.println((int)f);产生相同的行,以及为什么会这样Floatf2=(float)Integer.MAX_VALUE;System.out.println(Integer.MAX_VALUE);System.out.println(f2.intValue());我的意思是,float的尾数长度是2^23-1。它如何设法保持整数的max_value,即2^31-1? 最佳答案

java - 如何使用 Jackson 的本地化小数点分隔符反序列化浮点值

我正在用Jackson解析的输入流包含纬度和经度值,例如此处:{"name":"product23","latitude":"52,48264","longitude":"13,31822"}出于某种原因,服务器使用逗号作为产生InvalidFormatException的小数点分隔符。由于我无法更改服务器输出格式,因此我想教Jackson的ObjectMapper来处理这些情况。相关代码如下:publicstaticObjectgetProducts(finalStringinputStream){ObjectMapperobjectMapper=newObjectMapper();

java - 为什么这个浮点文本值可以解析为double?

有人知道为什么下面的代码片段不会抛出NumberFormatException吗?publicclassFlIndeed{publicstaticvoidmain(String[]args){System.out.println(newFlIndeed().parseFloat("0xabcP2f"));}publicfloatparseFloat(Strings){floatf=0.0f;try{f=Float.valueOf(s).floatValue();returnf;}catch(NumberFormatExceptionnfe){System.out.println("In

java - 为什么两个名义上具有相同值的浮点结果不同?

我最近在阅读有关在内存中存储浮点值的内容。我写了一个小程序来测试我读过的内容。我注意到Java处理浮点值的方式有所不同。publicclassTest{publicstaticvoidmain(Stringargs[]){doublea=0.90;System.out.println(a);System.out.println(2.00-1.10);}}以上程序正在打印0.90.8999999999999999为什么这两个语句打印的值不同?我知道有些float值无法准确表示。在这种情况下,两者应该给出相同的值。 最佳答案 Whybo

java - 十六进制浮点文字

这个问题在这里已经有了答案:Javafloating-pointnumbersrepresentationasahexadecimalnumbers(2个答案)Inbinarynotation,whatisthemeaningofthedigitsaftertheradixpoint"."?(7个答案)关闭8年前。0x12.2P2如何等于72.5?我知道P后面的值称为二进制指数,表示数字乘以的二次方?

java - Java 中的 x86 80 位浮点类型

我想在Java中模拟x86扩展精度类型并执行算术运算和转换为其他类型。我可以尝试使用BigDecimal来实现它,但是涵盖所有围绕NaN、无穷大和强制转换的特殊情况可能是一项乏味的任务。我知道一些库提供的其他浮点类型的精度高于double,但我希望具有与x8680位浮点相同的精度。有没有提供这种浮点类型的Java库?如果没有,您能否提供其他提示,以比提出自定义BigDecimal解决方案更轻松地实现此类数据类型? 最佳答案 如果您知道您的Java代码实际上将在x86处理器上运行,请在汇编(或C,如果C编译器支持的话)中实现80位算法

实验报告册------Python函数的定义和调用:设计一个calc_bmi函数,根据用户输入的身高(m)和体重(kg),调用该函数,算出BMI(身体质量指数)并返回两个值,第一个返回值是浮点型的BM

题目:设计一个calc_bmi函数,根据用户输入的身高(m)和体重(kg),调用该函数,算出BMI(身体质量指数)并返回两个值,第一个返回值是浮点型的BMI值,第二个返回值是字符串,说明体型是偏廋,正常,超重,还是肥胖。根据这两个返回值输出计算结果。要求:不限定函数调用时的参数顺序,可以身高在前,体重在后,也可以反过来。例:bmi,text=calc_bmi(身高和体重)#请自行设计参数    输出:您的BMI为xx,您的体型yyBMI的计算方法:代码:defcalc_bmi(a,b):    #BMI    BMI=float(float(a)/(float(b)*float(b)))   

java - 如何从字符串中获取浮点值

我有一个字符串>12.4N-m/kg.我需要从上面的字符串中得到一个值12.4。当我使用替换所有函数时str.replaceAll("[^.0-9]","")。当字符串有两个点时,这不起作用。浮点值的位置可能不同。 最佳答案 首先丢弃所有非flot字符,然后像这样转换为Float:floatf=Float.valueOf(">12.4N-m/kg.".replaceAll("[^\\d.]+|\\.(?!\\d)",""));//nowf=12.4 关于java-如何从字符串中获取浮点值