gpt4 book ai didi

java - Java 中仅将小数点四舍五入到最接近的十位,例如 1.17 到 1.20

转载 作者:行者123 更新时间:2023-12-01 19:56:54 26 4
gpt4 key购买 nike

如何舍入给定数字,例如 1.17 到 1.20,而不是 1.0 或 2.0。我试图打印从 4 英尺到 7 英尺的厘米、英尺和英寸列表。我已经得到了厘米和英尺部分,但英寸部分不符合预期。

这是我用来生成列表并记录结果的函数

private void print() {
final float oneInch = 2.54f;
final float oneFt = 30.48f;
final float end = oneInch * 12 * 7;
float start = oneInch * 12 * 4;
int cm;
int ft;
float in;
StringBuilder sb = new StringBuilder();
DecimalFormat decimalFormat = new DecimalFormat("#.##");
decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
while (start <= end) {
if (sb.length() > 0) {
sb.replace(0, sb.length(), "");
}

cm = (int) start;
sb.append(cm);
sb.append(" cm, ");

ft = (int) (start / oneFt);
in = Float.valueOf(decimalFormat.format(start / oneFt - ft));
if (in >= 1.0f) {
++ft;
in = 0f;
}
sb.append(ft);
sb.append(" ft ");
if (in > 0) {
sb.append(String.valueOf(in).replace("0.", ""));
}
start += oneInch;
Log.i("measure", sb.toString());
}
}

这是记录的值

121 cm, 4 ft
124 cm, 4 ft 08
127 cm, 4 ft 17
129 cm, 4 ft 25

打印为 4 ft 08,如何将英寸部分打印为整数,像这样?

121 cm, 4 ft
124 cm, 4 ft 1
127 cm, 4 ft 2
129 cm, 4 ft 3

最佳答案

不要使用字符串进行数字运算。做数学时,使用数学运算符和数学函数:

in = (start / oneFt - ft) * 12;

您根本不需要对数字进行四舍五入。让 DecimalFormat 进行舍入:

if (in > 0) {
sb.append(decimalFormat.format(in));
}

关于java - Java 中仅将小数点四舍五入到最接近的十位,例如 1.17 到 1.20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49324599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com