我有两个整数
int a = 5324;
int b = 5;
划分" a" by" b"我应该得到答案" 1064.8"。我想将此答案转换为字符串。我期待我的字符串是" 1064.8"。我对" 8"感兴趣在"。"
之后如何确保我的字符串在"之后确实包含1个字符。"
这是我的尝试:
float answer = ((float) a)/b;
String s = answer.toString();
Character result = s.charAt(s.length()-1);
但是,我无法确保我的结果与"之后的字符相同。"
答案 0 :(得分:7)
您可以将结果乘以10,以便您感兴趣的数字是整数除法结果中的最后一位数。然后,您可以使用% 10
获取最后一个10位数:
class Test {
public static void main(String[] args) {
int a = 5324;
int b = 5;
int fixedpointresult = 10*a/b;
int lastDigit = fixedpointresult % 10;
System.out.println(lastDigit);
}
}
这打印8
答案 1 :(得分:4)
我假设您要以精度为1打印结果。
String.format()
为此提供了支持:
float answer = ((float) a)/b;
String out = String.format("%.1f",answer);
或者您可以使用DecimalFormat
DecimalFormat myFormatter = new DecimalFormat(""###.#"");
String output = myFormatter.format(value);
其他参考和示例为here
如果你真的只对.
背后的第一个字符感兴趣,那么其他人answer就可以了。
答案 2 :(得分:0)
此解决方案将为您提供小数点后的第一个数字char:
char result = Character.forDigit(int(((float)(a%b) / b) * 10), 10);