当前位置: 首页 > 知识库问答 >
问题:

我应该使用'严格的tfp'修饰符时,将浮点数转换为双?

杜烨伟
2023-03-14

如果我想写从float到double的转换方法。

有没有可能两者会给出不同的结果?

如果我不关心平台一致性,我应该使用哪个版本?

如果我需要它在不同的平台上保持一致,该怎么办?

  double f2d(float x) {
    return (double) x;
  }

或:

  strictfp double f2d(float x) {
    return (double) x;
  }

JLS 5.1。2:

从float到double的非strictfp加宽原语转换可能会丢失有关转换值的总体大小的信息。

为什么这种转换会丢失信息?

共有1个答案

习洲
2023-03-14

严格的tfp将使浮动双重转换没有区别。原因在Java语言规范4.2.3中。浮点类型、格式和值。特别是:

注意表4.2中的约束条件。3-A的设计使得浮点值集的每个元素都必须也是浮点扩展指数值集、双值集和双扩展指数值集的元素。

由于float值集的每个元素也是double值集的元素,因此floatdouble的转换将是精确的,无论它是否严格。

 类似资料:
  • 问题内容: 正如标题所说。我不认为有可能这样做,但如果可以告诉我。 这是我正在编写的bukkit(minecraft服务器)插件所必需的。我要执行一个命令:tnt [power]。电源是我想转换为浮点数的返回字符串。 谢谢 问题答案: 用于进行转换。 和之间的区别只是回报。如果需要(对象),请使用前者;如果要数字,请使用后者。

  • 问题内容: http://golang.org/pkg/strconv/ http://play.golang.org/p/4VNRgW8WoB 如何将浮点数转换为字符串格式?这是google游乐场,但未获得预期的输出。(2e + 07)我想得到“ 21312421.213123” 请帮助我从浮点数中获取字符串。谢谢 问题答案: 试试这个 如果只想获得尽可能高的位数精度,则特殊精度-1使用所需的最

  • 问题内容: 有点像这个问题,但是相反。 给定类似,或的字符串,将其转换为浮点数的最佳方法是什么?我正在考虑根据情况使用正则表达式,但是也许有人知道更好的方法或预先存在的解决方案。我希望可以使用,但是我认为第3种情况可以避免这种情况。 问题答案: 我稍微调整了詹姆斯的回答。 http://ideone.com/ItifKv

  • 问题内容: 指定直方图聚合时,是否可以将字符串转换为浮点数?因为我的文档中的字段是浮点型的,但没有通过Elasticsearch解析,因此当我尝试使用字符串字段求和时,它将引发下一个错误。 我知道我可以更改映射,但是对于我有的用例,如果在编写字段的聚合时可以指定类似“ script:_value.tofloat()”的内容,则将更加方便。 这是我的代码: } 问题答案: 你需要这个 对于称为的字段

  • 问题内容: 我有一个必须解析的二进制文件,并且正在使用Python。有没有办法占用4个字节并将其转换为单个精度浮点数? 问题答案:

  • 问题内容: 这是我正在查看的内容: 因此,我知道不能完全用二进制表示“ p” 1.15的十进制值。 因此,大的十进制大“ bdp”输出对我来说非常有意义……这是浮点数的实际值。 问题1 当浮点数“ p”转换回字符串以进行输出(如1.15)时,如何四舍五入(从内部1.149..375到1.15)? 在文档中的什么地方指定?toString javadoc并没有真正帮助(至少对我来说)。 我在语言规范