0

基本上我正在改变布局比例。我必须将当前布局比例更改为另一个比例。我在我的应用程序中使用了一个代码片段。

import java.util.*;
public class Big{


public static void main(String args[]){
float b=(new Scanner(System.in)).nextFloat();
float a=(b*((float)225/440));

//Another layout ratio height
System.out.println(a);

//Back to previous layout height
float c=(a*((float)440/225));
System.out.println(c);



}

}

以下是一些输入及其受人尊敬的输出:

在输入值 50,60.0,65 和 69.9999 上,代码分别返回相同的输出 50,60.0,65 和 69.9999。但是当我尝试输入 70 和 80 时,代码分别返回近似值 69.99999 和 79.99999。问题是 - 为什么在 70 和 80 的情况下我得到这些近似值而不是精确值。可能还有其他一些情况。我试图在所有情况下获得准确的值。

4

1 回答 1

-1

使用 BigDecimal 进行精确计算,但要小心,因为它真的很慢。

正如上面的评论所说,浮点型数学在设计上是不精确的:没有办法表示可以在实数集中创建的无限数

BigDecimal 用于此类计算。但它以精确换取速度。

于 2020-08-23T20:30:20.577 回答