如何将char形式的数值转换为double值?
我已经尝试将char转换为double但是...它不能像我猜测的那样,因为'4'等字符将在双精度中转换为52.0。
那么有没有办法转换值为say的char char c ='4' 到4.0的double值,我可以实际对值进行数学计算吗?
这只是我创建的一个小程序,用于显示直接将数字字符串转换为double将无法按照预期的方式工作。
public class conversion
{
public static void main(String args[])
{
char eight = '8';
char four = '4';
double d2 = (char)eight;
double d1 = (char)four;
System.out.println(d2);
System.out.println(d1);
double result = (d2 / d1);
System.out.println(result);
}
}
输出:
56.0
52.0
1.0769230769230769
答案 0 :(得分:2)
您可以减去'0'
,然后转换为double
:
char c = '8';
double d = (double) (c - '0'); // <--
System.out.println(d);
8.0
您可以通过c
检查'0' <= c && c <= '9'
是否有效。
答案 1 :(得分:1)
你可以这样做:
double d2 = (double) Character.digit(eight, 10);
double d1 = (double) Character.digit(four, 10);
或者:
double d2 = (double) (eight - '0');
double d1 = (double) (four - '0');
如果您想转换整个字符串,请使用Double.parseDouble
double d2 = Double.parseDouble("15.5");
请注意可能NumberFormatException
是字符串是无效的浮点数
答案 2 :(得分:1)
您也可以使用:
double d2 = Double.valueOf(String.valueOf(eight));
double d1 = Double.valueOf(String.valueOf(four));
答案 3 :(得分:1)
当您进行转换时,它会返回4或8的ASCII代码。以下代码是您想要的:
char myc='4';
double myd= Double.parseDouble(Character.toString(myc));
答案 4 :(得分:0)
字符'0'
与整数0
不对应。它对应于'0'
字符的ASCII密钥代码。幸运的是,字符'0'
到'9'
的关键代码是顺序的,因此您只需减去'0'
即可将数字字符转换为它所代表的整数:
double d2 = (char)(eight - '0');
double d1 = (char)(four - '0');
答案 5 :(得分:0)
这个怎么样?
char doubleChar = '8';
double doubleDouble = Double.parseDouble(Character.toString(doubleChar));
答案 6 :(得分:0)
你需要将char转换为字符串,然后像这样加倍:
double d2 = Double.parseDouble(Character.toString(eight));
double d1 = Double.parseDouble(Character.toString(four));