可能重复:
Java整数除法:你如何产生双重?
我的朋友正试图将某种计算作为课堂上的任务,他遇到了一些麻烦......我希望你能帮助他.
问题是他从用户那里获得了一个输入(必须是,它是任务的一部分).他试图在下面的代码中将其转换为double,但这不起作用.无论如何,结果都是int.
double firstSolution = ((b1 * a22 - b2 * a12) / (a11 * a22 - a12 * a21));
double secondSolution = ((b2 * a11 - b1 * a21) / (a11 * a22 - a12 * a21));
Run Code Online (Sandbox Code Playgroud)
如果你需要更多解释,我会问他.提前致谢!
我正在Java应用程序中尝试这个简单的计算:
System.out.println("b=" + (1 - 7 / 10));
Run Code Online (Sandbox Code Playgroud)
显然我想要b=0.3输出,但这就是我得到的b=1.
什么?!为什么会这样?
如果我做:
System.out.println("b=" + (1 - 0.7));
Run Code Online (Sandbox Code Playgroud)
我得到了正确的结果b=0.3.
这里出了什么问题?
当我使用双打在Java中将317除以219时,我得到1.
例如:
double b = 317/219;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
输出为:1.
这是因为它是一个重复的小数?不得不使用BigDecimal而不是烦人的.
计划1
int sum = 30;
double avg = sum / 4; // result is 7.0, not 7.5 !!!
Run Code Online (Sandbox Code Playgroud)
VS.
计划2
int sum= 30
double avg =sum/4.0 // Prints lns 7.5
Run Code Online (Sandbox Code Playgroud)
这是因为程序1中的'4'是一个字面整数吗?所以30/4会给我7.但是由于这个数据类型是double,我们需要添加.0到end.'7.0'
程序2有4.0,它充当文字双.int/double总是会给出double,因为它更精确.所以我们得到'7.5'.我不明白双重数据类型对结果做了什么.它实际上不需要做任何事情,因为双数据类型的条件已经满足.(从计算中得到最准确的结果).
我错了吗?我鼓励你纠正我!这就是我学习的方法.. :)
int cinema,dvd,pc,total;
double fractionCinema, fractionOther;
fractionCinema=(cinema/total)*100; //percent cinema
Run Code Online (Sandbox Code Playgroud)
因此,当我运行代码来显示fractionCinema时,它只给我零.如果我将所有的整数改为双打,那么它就会给我我想要的东西.但是,我在其他地方使用电影,电脑和总数,它们必须显示为整数,而不是小数.我该怎么办?
我使用了以下代码:
double pow = 3/7;
double num = 85;
System.out.println(Math.pow(num, pow));
Run Code Online (Sandbox Code Playgroud)
预期结果:
6.71...
Run Code Online (Sandbox Code Playgroud)
输出是
1.0
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
考虑以下C#和Java,
double d = 3 / 2 * 3.2;
Run Code Online (Sandbox Code Playgroud)
Java的
System.out.println(d); // 3.2
Run Code Online (Sandbox Code Playgroud)
C#
Console.WriteLine(d); //3.2
Run Code Online (Sandbox Code Playgroud)
它跳过3/2,
我们知道正确的答案应该是4.8
如果我改变
double d = 3.00 / 2 * 3.2;
Run Code Online (Sandbox Code Playgroud)
我可以得到4.8,
所以我想问一下,如果(3/2*3.2)是非法的,为什么eclipse和vs2008没有错误?以及如何在C#和Java中防止这个问题?
这是代码:
class testsum
{
public static void main(String arg[])
{
double sum=0;
double fraction;
fraction=-1/9;
System.out.println("fraction: "+fraction);
fraction=-1;
fraction=fraction/9;
System.out.println("fraction: "+fraction);
}
}
Run Code Online (Sandbox Code Playgroud)
输出0然后是-0.11111111
为什么是第一个输出0而不是-0.11111111111?
我在这里做了一段简单的java代码,它是一个被调用来将华氏温度转换为摄氏温度的方法.然而,当我运行它时,输出始终是0.0.
我不能让它输出正确的计算.可能有一些我忘记做的傻事,有人可以帮帮我吗?
public class ExampleQ {
public static void main(String[] args) {
System.out.println(Celsius(50));
}
public static double Celsius(double F)
{
return (5 / 9) * (F - 32);
}
}
Run Code Online (Sandbox Code Playgroud) java ×10
c ×1
c# ×1
divide ×1
division ×1
double ×1
exponential ×1
long-integer ×1
math ×1
methods ×1
pow ×1
return ×1
return-value ×1