gpt4 book ai didi

java - 如何将 double 舍入到 n 长度(不是 n 小数位)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:47 25 4
gpt4 key购买 nike

<分区>

我一直在努力寻找一种方法来确保双“值”的长度不大于 10。但是,由于我没有将其四舍五入到特定的小数位数,因此编程变得越来越困难。

例如,1234567.8912 和 12.345678912 都大于 10 位数字,但是,它们必须四舍五入到不同的小数位数。我的逻辑是找到小数点出现的位置并将 double 四舍五入为“10 - 小数点前的位数”。

我创建了两种不同的方法,但这两种方法似乎都无法正常工作。

    if ((Double.toString(value)).length()> 10){
int counter = 0;
double no_of_dec = 1;
double no_of_int = 1;
double new_value = 0;
for (int i = 0; i< (Double.toString(value)).length(); i++){
if ( (Character.toString((Double.toString(value)).charAt(i))).equals(".") ){
counter = 1;
} if (counter == 1){
no_of_dec = no_of_dec * 10;
} else if (counter == 0){
no_of_int = no_of_int * 10;
}
}
no_of_dec = no_of_dec / (no_of_int);
new_value = (double)Math.round(value * 100d/100d);
return Double.toString(new_value);
} else {
return Double.toString(value);
}


if ((Double.toString(value)).length()> 10){
double no_of_dec = 0;
double no_of_int = 0;
double new_value = 0;
for (int i = 0; i< (Double.toString(value)).length(); i++){
while (!(Character.toString((Double.toString(value)).charAt(i))).equals(".")){
no_of_int = no_of_int + 1;
}
}
no_of_dec = (Double.toString(value)).length() - no_of_int;
no_of_dec = no_of_dec * 10;
new_value = (double)Math.round(value * no_of_dec/no_of_dec);
return Double.toString(new_value);
} else {
return Double.toString(value);
}
}

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