Nos*_*rep -1 java double type-conversion char
I'm trying to convert an array of chars to an array of doubles with each one between 0-1, so that a would be 0 and z would be 1. Currently, I've thought of this method,
public static double[] charToDouble(char[] chars){
double[] doubles=new double[chars.length];
double one=1;
double twentySix=26;
double eachChar=one/twentySix;
for(int i=0; i<chars.length; i++){
int charNum=((int)input)-96;
doubles[i]=eachChar*charNum;
}
return doubles;
}
Run Code Online (Sandbox Code Playgroud)
but a would be converted to 1/26 instead of 0.
您需要通过划分25,不是26,因为有25个间隔 26页之间的信件。
您正在过度考虑自己的方法;在一个简单的循环中,您只需要一行代码:只需a从char每个字母的减去,然后将结果除以25:
for(int i = 0; i < chars.length; i++) {
doubles[i] = (chars[i] - 'a') / 25d;
}
Run Code Online (Sandbox Code Playgroud)
请注意25之后的小“ d”-使得25 a double,使结果a double。如果你不这样做,你得到的整数运算,这将使得除了每个字母z的农产品0。
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |