gpt4 book ai didi

java - (Java) 为什么写0x12.2P2正确但写0x12.2F不正确?

转载 作者:行者123 更新时间:2023-12-02 13:37:28 25 4
gpt4 key购买 nike

我刚刚开始学习java,有一个关于文字的问题。

代码:

class what_is_px_literals {
public static void main(String args[])
{
float a = 0x12; //Question Line
System.out.print("\nThis is the number in:\n\tHexdecimal:\t0x12.2\n\tDecimal:\t"+a+"\n\tWorking of P\t"+0x12.2P2+"\n");
}
}

上面的代码编译没有错误。然而,将该行重写为:

float a = 0x12.2 //or float a = 0x12.2F or double a = 0x12.2D

出现错误。

为什么小数点后加数字会出错?

为什么这行代码是错误的:

float a = 0x12.2 //or float a = 0x12.2F or double a = 0x12.2D

最佳答案

基本原因是添加此符号是为了精确表示,而不是为了方便。预计指数将以 2 为底给出,因为它是浮点值的内部表示形式。

Why does it give an error when numbers are added after the decimal point?

它不用于十六进制,因为这些值用于单独这样的点没有用的值。您必须提供指数才能使用此表示法。

例如来自 Double 的来源。

public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308

public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308

关于java - (Java) 为什么写0x12.2P2正确但写0x12.2F不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com