在 Java 中,Double 提供了toHexString()和toString()方法用于进制间转换。
toHexString() 转为双精度数字的十六进字符串
获取Double参数的十六进制字符串表示形式。
✍方法声明
public static String toHexString(Double d);
- 📥入参:d为要转换的Double值。
- 🪐返回值:参数的十六进制字符串表示形式。
public static void main(String[] args) {
String str1 = Double.toHexString(3.14159d);
System.out.println(str1);
String str2 = Double.toHexString(Double.NaN);
System.out.println(str2);
String str3 = Double.toHexString(Double.POSITIVE_INFINITY);
System.out.println(str3);
String str4 = Double.toHexString(Double.MAX_VALUE);
System.out.println(str4);
String str5 = Double.toHexString(0.00);
System.out.println(str5);
}
0x1.921f9f01b866ep1
NaN
Infinity
0x1.fffffffffffffp1023
0x0.0p0
NaN
Infinity
0x1.fffffffffffffp1023
0x0.0p0
下面提到的所有字符都是ASCI字符。
- 如果参数为NaN,那么结果是字符串“NaN”。否则,结果是表示参数的符号和数值(绝对值)的字符串。
- 如果符号为负,那么结果的第一个字符是’-‘(u002D);如果符号为正,则结果中不显示符号字符。
- 如果f为无穷大,则用字符串“Infinity”表示;因此,正无穷大生成结果“Infinity”,负无穷大生成结果“-Infinity”。
- 如果f为0,则用字符串“0x0.0p0”表示;因此,负0生成结果“0x0.0p0”,正0生成结果“0x0.0p0”。
- 如果f是具有标准化表示形式的Double值,则使用子字符串表示有效位数和指数。有效位数用字符串“0x1.”表示,后跟该有效位数小数部分的小写十六进制表示形式。除非所有位数都为0,否则移除十六进制表示形式中的尾部0,在所有位数为0的情况下,可以用一个0表示。然后用“p”表示指数,后跟无偏指数的十进制字符串,该值与对指数值调用Integer.toString生成的值相同。
- 如果f是具有subnormal表示形式的Double值,则用字符“Ox0.”表示有效位数,后跟该有效位数小数部分的十六进制表示形式。移除十六进制表示形式中的尾部0。然后用“p-l26”表示指数。注意,在subnormal有效位数中,至少必须有一个非0位数。
toString() 生成双精度数字的十进制字符串
返回Double参数的字符串表示形式。
✍方法声明
public static String toString(Double d);
- 📥入参:d为要转换的Double参数。
- 🪐返回值:参数的字符串表示形式。
下面代码创建Double对象d,并通过Double类的toString()方法获取对象d1的参数值的字符串表示形式。
public static void main(String[] args) {
String str1 = Double.toString(1.234);
System.out.println(str1);
String str2 = Double.toString(Double.NaN);
System.out.println(str2);
String str3 = Double.toString(Double.POSITIVE_INFINITY);
System.out.println(str3);
String str4 = Double.toString(Double.MAX_VALUE);
System.out.println(str4);
String str5 = Double.toString(0.00);
System.out.println(str5);
String str6 = Double.toString(-0.00);
System.out.println(str6);
}
1.234
NaN
Infinity
1.7976931348623157E308
0.0
-0.0
NaN
Infinity
1.7976931348623157E308
0.0
-0.0
✍方法声明
返回此Double对象的字符串表示形式。使用此对象表示的基本double值被转换为一个字符串,这与带一个参数的toString方法完全一样。
public String toString()
- 🪐返回值:参数的字符串表示形式。
下面代码创建Double对象d,并通过Double类的toString()方法获取对象d的参数值的字符串表示形式。
public static void main(String[] args) {
Double d1 = Double.valueOf(1.234);
String str1 = d1.toString();
Double d2 = Double.valueOf(Double.NaN);
String str2 = d2.toString();
}
📝总结
💡 Double类提供了toString()方法来获取Double对象或double值的字符串表示形式。
💡 了解Double类的方法对于处理double值的字符串表示和转换非常重要,尤其是在涉及数值格式化和解析时。