如何截断小数点后的位数

时间:2018-11-21 07:52:38

标签: java

假设我采用一个无理数q和一个整数n,并且我想在小数点后精确地保留n位数字后打印q的截断值。

示例: 输入:q = 3.14159625,n = 3 输出:3.141

1 个答案:

答案 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

但是您将需要检查的有效索引和字符串长度