转换字符加倍

时间:2013-11-14 20:23:41

标签: java char double

如何将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

7 个答案:

答案 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));