我希望将双精度打印到变量精度,但不进行舍入。例如:
Scanner input = new Scanner(System.in);
double num;
System.out.println("Enter a double:");
num = input.nextDouble();
int precision;
System.out.println("Enter precision:");
precision = input.nextInt();
现在我想将num打印到精度的小数位。有没有一种简单的方法来打印它?
编辑: 我还没有看到关于如何使用变量值的另一个问题。 DecimalFormat选项对数字进行舍入,这是我不想要的。理想情况下,我正在寻找一种方法来使用变量:
"%.nf"
而不是
"%.3f"
答案 0 :(得分:1)
使用"%.nf"
作为格式化字符串,其中n
被小数位数替换。
示例:
System.out.printf("%.1f, %.2f\n", 1.234d, 1.234d);
// 1.2, 1.23
请参阅the Javadoc。
要在其中插入变量,只需执行"%." + intValue + "f"
。