Java 将字符转换为双字符
如何将字符形式的数值转换为双精度值 我试着将字符转换为双字符,但是。。。它不是那样工作的,我猜像'4'这样的字符会在双倍中转换为52.0 有没有一种方法可以转换一个值为say的字符 字符c='4' 到一个4.0的双倍值,我可以对这个值进行数学计算吗 这只是我创建的一个小程序,它表明将数字字符直接转换为双精度字符不会像我预期的那样工作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
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));