0

所以,我正在制作一个程序来进行多基数的算术运算(意思是二进制到十六进制以及所有中间值),而且由于我对 Java 还比较陌生,所以我很难弄清楚确切地知道如何进行我想要的比较。我想做的是获取字符串中的最后一个字符并将其与特定整数进行比较。例如,假设我有一个数字 9.54126。好吧,在程序的这一点上,这个数字实际上是一个字符串,所以我把结尾的“6”看作一个字符。我想看看这六个是否足够高以四舍五入。所以,基本上我想看看它的 ASCII 值是否高于当前基数的一半(如果答案要显示在基数 15 或 16 中,我会在 8 处四舍五入,依此类推)。在程序的早些时候,我发现它应该根据当前选择的基数四舍五入,并将其保存在整数变量 roundable 中。现在,我需要知道如何将整数的 ASCII 值作为一个字符与最后一个位置的字符进行比较。这是示例代码:

 //roundable is an integer here but I want it to be the character representation
 //of the number so I can compare their ASCII values                                                        

if(convertedString.charAt(lastSpot)) >= roundable){
    //round here
} else {
    //don't round
}

有人可以告诉我如何做到这一点吗?谢谢!

4

2 回答 2

0

尝试这个:

int base;
String number;

boolean roundUp = number.charAt(number.length() - 1) - '0' > base / 2;
于 2013-10-21T04:39:07.763 回答
0

假设您的 convertString 仅包含来自'0'-'9': 您可以轻松做到的字符,

lastSpot = convertedString.length() - 1;
roundable = base/2;
if((convertedString.charAt(lastSpot) - '0') >= roundable){
    //round here
} else {
    //don't round
}

'0'is 30(48)in 和 for '9'is的十六进制(十进制)值39(57)

于 2013-10-21T04:14:35.757 回答