- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我运行该程序时遇到问题。循环和计算工作正常。由于某种原因,它只会计算 50 以下的面积。小数字运行良好,但较大的计算会得到 NaN 结果,这是一个问题。有什么帮助吗?
封装区;
导入java.util.;导入java.text。;
公共(public)类AreaPtTwo {
//this creates a scanner object for the user to input through
final static Scanner sc = new Scanner(System.in);
public static void main (String[] args){
boolean playAgain = true;
DecimalFormat fmt = new DecimalFormat("#.###");
while(playAgain){
//gets the three inputs from the user
double a = getNum(1);
double b = getNum(2);
double c = getNum(3);
// calculates 's' = perimeter/2
double s = (a+b+c)/2.0;
//this calculates the area of the triangle by getting the square root of (s(s-a)(s-b)(s-c)) --> this is hard to read but there isn't really a better way to put it in comments.
double area = (double) Math.sqrt(s*(s-a)*(s-b)*(s-c));
System.out.println("Area: " + fmt.format(area));
//Closes
System.out.println("_______________________________________________________________________________________________________");
System.out.println("Play again? (y/n)");
String again = sc.next();
if(again.charAt(0) == 'y') playAgain = true;
else if (again.charAt(0) == 'n') playAgain = false;
else playAgain = false;
}
}
// this method is to get the input from the user. It is in a method because it is performed three times. this will only accept numbers, no strings or characers allowed
public static double getNum(int n){
System.out.println("Enter the length of side " + n +":");
// this will loop until to make sure that the user does not enter characters or words, and will prompt the user until a number is entered
while (!sc.hasNextDouble()){
System.out.println("Invalid input\nEnter the length of side " + n +":");
sc.next(); // this has to be sc.next() because it will throw a hige error if someone enters a word
}
// this returns the next double entered as the variable.
return sc.nextDouble();
}
}
最佳答案
从数学上讲,如果边不能构成实际的三角形,则 s(s-a)(s-b)(s-c) 应该为负数,并且负数的平方根返回 Nan。看起来,当你得到 NaN 时,问题出在几何上,而不是编程上。对于任何可以形成实际三角形的数字,它都可以正常工作。
如果您不明白我的意思,请尝试画一个边长分别为 1、2 和 5 的三角形。
关于java - 即使在转换和扫描 nextDouble 后也不是数字错误。 (Java)请帮忙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21816246/
Java 中的 BankApplication 程序,setDebitCard() 函数中的问题。 在这里,我无法在每次 java 运行 后为 debitCardNumber 变量生成一个唯一的随机数
如果从多个线程中并发调用同一System.Random实例的NextDouble(),而没有任何锁定,将会发生哪些错误/问题(如果有)? 最佳答案 简而言之,System.Random 不是线程安全的
嗨,我正在看书学习java;其中,有一项 Activity 称为贷款;我正在遵循示例,但是当我在键入我命名为 montoPrestamo(西类牙语)的贷款金额后想要测试程序时,但当我键入任何值时,ne
所以我正在创建一个程序,根据作业和测试成绩以及它们在该成绩中所占的百分比来确定最后学期的类(class)成绩。单个学生的成绩和百分比信息将在一行中给出。太好了,我只有一个问题: q1
我需要在数组中输入 4 个十进制数字并反转它们,我从数组中的 double 开始,如下所示,但 vand.nextDouble 函数给了我错误,我不想将代码放在misExpection中 我尝试更改数
我是 Java 新手,我正在尝试使用扫描仪从文本文件中读取一些数据。扫描器可以很好地读取字符串和整数数据成员,但是当它达到 double 时,它会抛出 InputMismatchException。
抱歉我的英语不好,但这不是我的母语。我必须创建程序来计算一些数学方程。我发现了一些恼人的问题。我需要在一行中获取输入数字,但是当我使用 sc = new Scanner(System.in);
所以我将 Java 作为数学学位要求的一部分,并且偶然发现了这段代码的问题。本质上,代码应该从用户那里获取数字,直到他们输入零。只要输入数字就可以正常工作。但是,如果用户输入字母或符号,程序就会出现异
我正在尝试使用 Random.nextDouble() 获取 1.0 和 10.0 之间的随机双数: double number = 1.0 + (10.0-1.0) * Random.nextDou
我想在C中生成一个0到1之间的随机双数。我使用了以下代码生成它,但我仍然得到 p 的值为 0.0000?谁能帮我解决这个问题吗? double p; int max; int min; max=1;
我有以下代码: Scanner in = new Scanner(System.in); while (in.hasNextDouble()) { System.out.println(Dou
用 C++ 编程几个月并达到中级水平后,我决定开始学习 Java。我在思考扫描仪变量的工作原理时遇到了一些麻烦。在 C++ 中,“cin>>”非常简单,因为它会将输入的任何内容存储到先前声明的变量中。
我正在开发一款用于从银行账户存入和提取资金的小应用程序。该程序大部分运行良好,但我从一些带有大量尾随小数的交易中得到奇怪的输出。我随机生成应该只有 2 位小数的 double ,所以我不确定它们来自哪
我正在尝试在下面的程序中使用 in.nextDouble() 方法来计算一些数字的平均值。 import java.util.Scanner; public class Average { publi
我正在玩弄 Random class's nextDouble()方法如下图。我希望 nextDouble() 在区间 [-50.0, 50.0) 上返回一个伪随机 double 值,但是,在运行循环
我已经使用该公式在自定义间隔中获得随机 double 值: Random r = new Random(); double Upper = 3.7, Lower = 11.4, Result;
import java.util.*; public class June16{ public static void main(String[] args){ Scanner
我有一个相当简单的问题。我收到像6.03这样的实数输入,但这给了我错误。如果我改成6,03就可以了。但是,我无法更改需要处理的输入,那么如何告诉 Java 使用 . 作为分隔符而不是 ,? Scann
这个问题已经有答案了: 奥 git _a (2 个回答) 已关闭 6 年前。 我正在学习 Java,当我尝试输入双 float 时遇到一些问题。 像这样。 import java.util.Scann
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
我是一名优秀的程序员,十分优秀!