假设我采用一个无理数q和一个整数n,并且我想在小数点后精确地保留n位数字后打印q的截断值。
示例: 输入:q = 3.14159625,n = 3 输出:3.141
答案 0 :(得分:1)
假设您要正确舍入,可以使用System.out.printf
来完成此操作
String format = "%." + n + "f";
System.out.printf(format, q);
int n = 3;
float q = 3.141592625f;
String format = "%." + n + "f";
System.out.printf(format, q);
输出
3.142
如果您真的想截断,可以将其转换为字符串,然后
int n = 3;
float q = 3.141592625f;
String str = Float.toString(q);
int index = str.indexOf('.');
System.out.println(str.substring(0, index + n + 1));
输出
3.141
但是您将需要检查的有效索引和字符串长度