所以,我正在编写一个用多个基数进行算术的程序(意思是二进制到haxycimal和所有中间的),因为我还是比较新的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
}
有人可以告诉我如何做到这一点?谢谢!
答案 0 :(得分:0)
假设您的convertedString只包含来自'0'-'9'
的字符:您可以轻松完成,
lastSpot = convertedString.length() - 1;
roundable = base/2;
if((convertedString.charAt(lastSpot) - '0') >= roundable){
//round here
} else {
//don't round
}
'0'
的十六进制(十进制)值为30(48)
,'9'
为39(57)
。
答案 1 :(得分:0)
试试这个:
int base;
String number;
boolean roundUp = number.charAt(number.length() - 1) - '0' > base / 2;