如何让String.format根据用户输入的小数位数格式化平方根结果?
动态控制平方根结果的小数位数
核心思路是动态构造格式化字符串,不再使用固定的"%.5f",而是根据用户输入的小数位数nKomma拼接出对应的格式模板。
实现代码示例
import java.util.Scanner; public class SqrtFormatter { public static void main(String[] args) { double dVar = 16.0; // 示例变量,可替换为实际需要计算平方根的数值 double dSqrt = Math.sqrt(dVar); Scanner sc2 = new Scanner(System.in); System.out.print("请输入要保留的小数位数:"); int nKomma = sc2.nextInt(); // 动态生成格式化模板 String formatPattern = "%." + nKomma + "f"; String formattedResult = String.format(formatPattern, dSqrt); System.out.println("平方根结果:" + formattedResult); sc2.close(); } }
注意事项
- 建议添加输入校验,确保用户输入的
nKomma是非负整数,避免非法输入导致的格式化异常:if (nKomma < 0) { System.err.println("错误:小数位数不能为负数"); return; } - 格式化规则只支持整数位数的小数保留,若用户输入非整数的位数需求,需要额外做参数转换或提示处理。
内容的提问来源于stack exchange,提问作者Johannes Achter
相关产品推荐
相关产品推荐

