gpt4 book ai didi

java - 对点后数字较大的值进行四舍五入

转载 作者:行者123 更新时间:2023-12-02 06:51:59 26 4
gpt4 key购买 nike

我有这段代码可以给出结果

double a = 128.73;
double roundOff = Math.round(a*100)/100;
System.out.println(roundOff);
Result is :- 128.0

我需要的是,如果点后的值大于 5,即(6、7、8 或 9),那么它的应该通过向必须四舍五入的给定值加 1 来给出结果,即

  • 128.54 应该给出结果 128.0
  • 128.23 应该给出结果 128.0
  • 128.73 应该给出结果 129.0
  • 128.93 应该给出结果 129.0

最佳答案

为什么不使用 ROUND_HALF_UPBigDecimal#setScale

a = a.setScale(0, BigDecimal.ROUND_HALF_UP);
<小时/>
double myDouble = 55.2; //55.51
BigDecimal test = new BigDecimal(myDouble);
test = test.setScale(0, BigDecimal.ROUND_HALF_UP);
//test is 55 in the first example and 56 in the second
<小时/>

编辑

正如 @Alex 所注意到的,上面的代码将无法按您的意愿工作。这是使用 Math#ceil 的另一种方法和Math#floor :

double n = myDouble - Math.floor(myDouble); //This will give you the number 
//after the decimal point.
if(n < 0.6) {
myDouble = Math.floor(myDouble);
}
else {
myDouble = Math.ceil(myDouble);
}

关于java - 对点后数字较大的值进行四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17917147/

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