一些SO用户对我说,我不应该对学生成绩之类的东西使用float / double,请参阅最后的注释:SequenceEqual()与自定义类和float值不相等
“因为以整数进行所有算术,然后在最后一分钟转换为合适的显示格式通常要比以浮点格式进行算术更容易和安全。”
我尝试了他说的话,但结果并不令人满意。
int grade1 = 580;
int grade2 = 210;
var average = (grade1 + grade2) / 2;
string result = string.Format("{0:0.0}", average / 100);
Run Code Online (Sandbox Code Playgroud)
结果是“ 3,0”
double grade3 = 5.80d;
double grade4 = 2.10d;
double average1 = (grade3 + grade4) / 2;
double averageFinal = Math.Round(average1);
string result1 = string.Format("{0:0.0}", averageFinal);
Run Code Online (Sandbox Code Playgroud)
result1为“ 4,0”
我期望4,0,因为3,95应该导致4,0。那行得通,因为我使用了Math.Round,它再次仅对双精度或十进制有效。那对整数不起作用。
那么我在这里错了什么呢?
问题是5/3*2.0 /(4%3)+ 5 = 7.0
出于某种原因,我不明白为什么这是有道理的.我首先划分5/6.0 = .83,然后除以(4%3即1)并加5,但我没有得到答案.你能详细解释一下吗?
谢谢.
我正在尝试计算学生分数的平均值,因为我正在努力计算部分.
在我的任务中,我被要求计算三名学生的平均年龄和平均值.三个学生的高度.
有人可以在这段代码的最后一行指导我,我为新手问题道歉,真的卡住了,无法想出任何解决方案,为什么它不计算我的数字.
public static void main(String[] args) {
// this method will display the scores of students
//variable declaration
int JasperAge = 20;
int JasperHeigth = (int) 175.5;
int PaulaAge = 25;
int PaulaHeigth = (int) 190.5;
int NicoleAge = 18;
int NicoleHeigth = (int) 165;
//output
Scanner output = new Scanner (System.in);
System.out.println("Name\t "+ " Age\t " + " Height (cm)\t");
System.out.println("\n");
System.out.println("Jasper\t "+JasperAge+" \t "+JasperHeigth);
System.out.println("Paula\t "+PaulaAge+" \t "+PaulaHeigth);
System.out.println("Nicole\t "+NicoleAge+" \t "+NicoleHeigth);
System.out.println("Average\t ((20 + 25 …Run Code Online (Sandbox Code Playgroud) 我能够将所有元组的第z个元素相加,但由于一些奇怪的原因,我将结果除以2后得到1.
averageYear :: [(String, String, Int)] -> Int
averageYear [] = 0
averageYear ((x,y,z):xs) = (z + (averageYear xs)) `div` (length xs)
Run Code Online (Sandbox Code Playgroud)
谢谢!!
当我们在C中乘以浮点数时,我们得到了什么?请解释.我感到很困惑,因为当我遇到Celsius到Fahrenheit转换以及许多其他转换时我遇到了这个问题.
我尝试找到一个问题的解决方案....我们有一个数字,例如:20 ...我们有6个数字:{a,b,c,d,e,f} <20,t试图找到这些数字的所有值,但前提是我们可以组合(whit +或 - )whit这个数字并将所有值低于20:例如
我们选择31:
a = 22 b = 21 c = 14 d = 11 e = 9 f = 5
我们有:22 - 21 = 1; 11 - 9 = 2; 14 - 11 = 3; 9 - 5 = 4; f = 5; 11 - 5 = 6; 21 - 14 = 7; .... .... .... .... 21 + 9 = 30; 9 + 22 = 31;
我正在制作一个简单的计算器,但是当我尝试划分时,我总是得到1.0,当我减去时,我总是得到零.加法和乘法工作正常.
我读过类似的问题,例如: 为什么整数除法代码给出了错误的答案? 在Java中划分两个整数给我0或100? Java中的除法总是导致零(0)?
还有很多...
这是我的代码的一部分:
if (minu) {
number1 = Double.valueOf(display1.getText().toString());
number2 = Double.valueOf(display1.getText().toString());
display1.setText("");
display2.setText("");
displaySymbol.setText("");
answer = number1 - number2;
display1.setText(Double.toString(answer));
}
Run Code Online (Sandbox Code Playgroud)
和分裂:
if (divid) {
number1 = Double.valueOf(display1.getText().toString());
number2 = Double.valueOf(display1.getText().toString());
display1.setText("");
display2.setText("");
displaySymbol.setText("");
answer = number2 / number1;
display1.setText(Double.toString(answer));
}
Run Code Online (Sandbox Code Playgroud)
请帮忙!