我正在尝试将小数转换为字符。 我的字母表已被转换为charArray
String alphabet = "abcdefghijklmnopqrstuvwxyz";
alpha = alphabet.toCharArray();
我使用的是二进制数,所以值只有0到255,但是当我尝试执行此代码时,它不起作用。
private int toChar(int encryptCode){
int base = 26;
int characterSteps = (encryptCode/255)*base;
char character = alpha[characterSteps];
return character;
假设我有小数78,78 / 255 * 26会给出7.95(归零到8) 它应该查找alpha数组并给出' h'。但每个角色都会给出一个'意思是(encryptCode / 255)* base 没有按预期工作。
答案 0 :(得分:1)
凯文在评论中是对的。尝试重新安排你的公式:
int characterSteps = (encryptCode*base)/255;
答案 1 :(得分:0)
变化
int characterSteps = (encryptCode/255)*base;
到
int characterSteps = (int) (encryptCode/255.0)*base;
你完成了! 255.0将导致在encryptCode和base上扩展,然后转换为int。
让我说我有小数78,78 / 255 * 26会给7.95(转入8轮)
将float / double转换为int将导致截断而不是舍入。 7.95将被截断为7而不是8.要舍入整数,请使用:
double x = (encryptCode/255.0)*base;
int characterSteps = (int) Math.round(x);
快乐的编码! :)