gpt4 book ai didi

java - 在java中四舍五入并计算小数点后有多少个数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:39 25 4
gpt4 key购买 nike

我一直在尝试编写一个程序来在小数点后四舍五入 - 例如 4.45 将变成 4.50 和 3.23-3.20 等等。为此,我试图计算小数点后有多少个数字,然后将其乘以 10 乘以我找到的那个数字,相应地加上或减去使其作为一个整体整数——例如 4.45 将首先变成 445,然后是 450,然后我再除以我找到的那个数字,所以我最终会得到 4.50。我在技术上所做的工作,唯一的问题是计算小数点后的位数。例如,我输入 20.13 作为我的 double ,我尝试将它乘以 10 直到它等于它是 int-like 如果 201.3==201 否则我继续乘以 10。唯一的问题是它在调试中破坏了我的数字我看到它变成了 20.13 到201.299999998 而不是 201.3,这使我的循环基本上是无限的,完全违背了目的。
我的功能:

//input : The function gets a double number
//output : The function returns how many numbers are after the decimal point
public static int countDecimal(double num){
int count=0;
while(num!=(int)num){
num*=10;
count++;
}
return count;
}

有谁知道它为什么这样做以及我如何实现我的目的?我也很想知道您是否知道将 4.45 舍入到 4.5 的更简单方法,因为我的方法需要许多其他函数,而且对于一些相当基本的东西来说相当长。我看到的 java 函数只舍入到整数 - 例如 4.5 到 5。

最佳答案

这是一个非常粗略的答案,但思路就在那里。

最好的办法是将您的数字转换为字符串

String numToString = String.valueOf(num);

找到小数点的索引并删除其中的任何 >2

int decimalIndex = numToString.indexOf(".");
numToString = numToString.substring(decimalIndex, decimalIndex + 2);

最后取你的最后一个数字并相应地向上或向下舍入。

关于java - 在java中四舍五入并计算小数点后有多少个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48997575/

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