gpt4 book ai didi

Java-双变量问题

转载 作者:行者123 更新时间:2023-12-01 08:10:23 26 4
gpt4 key购买 nike

这是我的简单方程计数器。现在它对具有两个变量的方程进行计数。它基于尝试 ab 变量的多种组合(400 万或 1600 万次)。所以代码运行良好并且计数准确。但是由于我尝试将变量 b 更改为双倍,所以事情出错了。我期望行 b=b+0.1 安全每 10 次将变量 b 设置为 1.0。但是在启动后,每个 b 几乎立即出现更多的十进制数字。那么我是否使用了错误的数据类型?或者我应该将变量 b 提高不同的值?(我也尝试将所有变量更改为双倍)。谢谢您的建议!

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Buffer{
static int a;
static double b;
static BufferedReader reader;
static String query;
static int range;
static int result;

public static void main(String[] args)throws IOException{
reader=new BufferedReader(new InputStreamReader(System.in));

System.out.print("Choose speed of test(fast or slow):");
query=reader.readLine();

if(query.equals("fast"))
range=2000;
else
range=4000;

//START THE TEST//
while((a+b)!=26000){
b=b+0.1;
if(b==range+1){
b=0;
a=a+1;
}
if((a+b)!=26000)
System.out.println("a- "+a+", "+"b- "+b+"=false.");

if((a+b)==26000){
System.out.println("a- "+a+", "+"b- "+b+"=true.");
System.out.println("\n"+"Done.You can possibly solve this equation, if a= "+a+" and b= "+b+".");
}
if(a==range&&b==range&&(a+b)!=26000){
System.out.println("\n"+"Tested "+a*b+" options.Solution not found.");
System.exit(0);
}
}
}
}

最佳答案

您可以使用 BigDecimal 代替 float/double 基元来避免这些问题。其中一些描述如下:Java Mistake 1 - Using float and double for monetary or financial calculation

关于Java-双变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975771/

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