Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符转换为双字符_Java_Char_Double - Fatal编程技术网

Java 将字符转换为双字符

Java 将字符转换为双字符,java,char,double,Java,Char,Double,如何将字符形式的数值转换为双精度值 我试着将字符转换为双字符,但是。。。它不是那样工作的,我猜像'4'这样的字符会在双倍中转换为52.0 有没有一种方法可以转换一个值为say的字符 字符c='4' 到一个4.0的双倍值,我可以对这个值进行数学计算吗 这只是我创建的一个小程序,它表明将数字字符直接转换为双精度字符不会像我预期的那样工作 public class conversion { public static void main(String args[]) { char eight

如何将字符形式的数值转换为双精度值

我试着将字符转换为双字符,但是。。。它不是那样工作的,我猜像'4'这样的字符会在双倍中转换为52.0

有没有一种方法可以转换一个值为say的字符 字符c='4' 到一个4.0的双倍值,我可以对这个值进行数学计算吗

这只是我创建的一个小程序,它表明将数字字符直接转换为双精度字符不会像我预期的那样工作

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'
,然后将其转换为
双精度

char c = '8';

double d = (double) (c - '0');  // <--

System.out.println(d);
charc='8';
双d=(双)(c-'0');// 你可以做:

double d2 = (double) Character.digit(eight, 10);
double d1 = (double) Character.digit(four, 10);
或:

如果要转换整个字符串,请使用

注意一个可能的错误,即字符串是无效的浮点数

您也可以使用:

double d2 = Double.valueOf(String.valueOf(eight));
double d1 = Double.valueOf(String.valueOf(four));

字符
'0'
与整数
0
不对应。它对应于
'0'
字符的ASCII键代码。幸运的是,字符
'0'
'9'
的关键代码是连续的,因此您只需减去
'0'
即可将数字字符转换为其表示的整数:

double d2 = (char)(eight - '0');
double d1 = (char)(four - '0');
这个怎么样

char doubleChar = '8';
double doubleDouble = Double.parseDouble(Character.toString(doubleChar));

当您这样强制转换时,它返回4或8的ASCII码。以下代码是您想要的:

char myc='4';
double myd= Double.parseDouble(Character.toString(myc));

您需要将字符转换为字符串,然后按如下方式加倍:

double d2 = Double.parseDouble(Character.toString(eight));
double d1 = Double.parseDouble(Character.toString(four));

尝试将代码转换为<代码> int >代码>第一步,然后转到<代码>双。<代码> char 是一个具有符号表示的整数。对于这样简单的东西,这确实是多余的。@ AsHaji认为它会在无效输入上抛出异常,这是OP可能需要的。@ SotiriosDelimanolis,事先检查无效输入是微不足道的。(见我的答案)。@arshajii至少如果OP有一天
String numb=“12.5”;
,这可能会有帮助。那么这只适用于字符“0”到“9”吗?有没有一种简单的方法来转换更高的数值?*编辑-忘记我问了一个不合逻辑的问题,完全忘记字符只能是一个数字更高的10进制数值不能用一个字符表示。例如,没有字符
'15'
例如,如果要转换数字字符串,可以使用内置函数,如
Integer.parseInt()
,或者一次转换一个字符,将中间结果乘以每个额外数字的
10
char doubleChar = '8';
double doubleDouble = Double.parseDouble(Character.toString(doubleChar));
char myc='4';
double myd= Double.parseDouble(Character.toString(myc));
double d2 = Double.parseDouble(Character.toString(eight));
double d1 = Double.parseDouble(Character.toString(four));