【发布时间】:2019-04-23 17:58:00
【问题描述】:
假设,我取一个无理数 q 和一个整数 n,我想在小数点后保留 n 位后打印 q 的截断值。
示例: 输入:q = 3.14159625,n = 3 输出:3.141
【问题讨论】:
标签: java
假设,我取一个无理数 q 和一个整数 n,我想在小数点后保留 n 位后打印 q 的截断值。
示例: 输入:q = 3.14159625,n = 3 输出:3.141
【问题讨论】:
标签: java
假设您想要正确的舍入,您可以使用 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
但您需要检查有效索引和字符串长度
【讨论】:
BigDecimal