double a=123.49556; a=a*1000; int b=((int) a)%10; a=(int)(a/10); if(b>=5&&b<=9){ a=a+1; } a=((double)a)/100; System.out.println(a);优化
时间: 2024-03-10 13:45:31 浏览: 17
这段代码可以进行如下优化:
```java
double a = 123.49556;
a = Math.round(a * 1000.0); // 四舍五入取整
a = a / 10.0; // 将 a 除以 10
System.out.println(a);
```
这样可以直接通过Math类中的round()方法进行四舍五入取整,避免了使用条件判断语句,代码更加简洁。同时,将a除以10的操作也可以在乘以1000时进行,避免了多次类型转换和运算,提高了代码的效率。
相关问题
c++ double a = 12.89999999999999;如何实现double b = 12.900
可以使用四舍五入函数来实现。可以调用math.h头文件中的round()函数,round()函数的功能是将浮点数四舍五入为最接近的整数。可以将原始的double型数据乘以10,然后调用round()函数取整,再除以10,就可以实现保留一位小数的四舍五入操作。例如:
```
#include <stdio.h>
#include <math.h>
int main()
{
double a = 12.89999999999999;
double b = round(a * 10) / 10;
printf("%.1lf\n", b);
return 0;
}
```
输出结果为12.9。
c++ double a = 125.52500915527344;如何实现double b = 125.525
可以使用强制类型转换将double类型的a转换为整型,并将结果再次转换为double类型,从而实现四舍五入保留三位小数的效果。示例代码如下:
```c
double a = 125.52500915527344;
double b = (double)((int)(a * 1000 + 0.5)) / 1000;
printf("%lf", b); // 输出125.525
```
在该示例代码中,首先将a乘以1000,然后加上0.5进行四舍五入,再将结果转换为整型,最后再除以1000转换为double类型,就可以得到保留三位小数的结果。