伙计们,我对这里的计算很好奇。球体方程的体积是球体体积= (4.0/3.0)πr^3。有人能解释为什么对于这个方程,我不能只写sphereRadius *3,而不是连续写sphereRadius 3次吗?我希望这个问题是清楚的。
谢谢你的帮助。
import java.util.Scanner;
public class SphereVolumeCalculator {
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
double piVal = 3.14159;
double sphereVolume;
double sphereRadius;
sphereRadius = scnr.nextInt();
sphereVolume = (4.0 / 3.0) * piVal * (sphereRadius * sphereRadius *
sphereRadius);
System.out.println(sphereVolume);
}
}
发布于 2019-01-17 05:03:42
表达式sphereRadius * 3
表示球体半径的三倍。如果您想取球体的三次幂,则使用Math#pow
sphereVolume = (4.0 / 3.0) * piVal * Math.pow(sphereRadius, 3.0d);
请注意,Math.pow
在技术上需要两个双精度,所以理想情况下球体半径也应该是双精度的,尽管由于类型转换,上面的方法也可以工作。
发布于 2019-01-17 05:29:03
你需要将半径平方,而不是乘以3。"*“运算符是乘法。注意它是如何用来连接元素"(4 / 3)“和"piVal”的,在我们试图实现的原始公式中,它们的引用是使用乘法组合的(这里简单地写成并列,这对于计算机解析来说不是一个很好的符号)。Java中没有第一类求幂运算符,因此它的能力被扩展为具有三个求幂数量副本的自乘。事实上,如果"*“求幂,那么编程的表达式将严重错误,甚至可能在很小的输入上溢出,这取决于操作的关联是如何设置的。
在打字环境中,使用"*“表示乘法是一种常见的说法,在这种环境中,更有效或更优雅的符号是不可用或可能令人困惑的,例如在简单的文本消息和像Java源文件这样的纯文本计算机源代码文件中。有时也会使用类似的符号,"x“符号,然而这有一个问题,即它是字面上的字母x,而不是单独的符号,因此对于变量的非常常用的名称是不明确的,因此在许多情况下不适合作为编程语言操作符号。
此外,在这之后,人们可能会认为"^“运算符在这种编写中的用法类似(很遗憾,Stack Overflow缺少一个基于LaTeX或类似的数学排版系统,尽管我记不清原因了;您可能可以在Meta上查找),但这实际上是指Java中的位XOR。@Tim Biegeleisen建议你可以使用Math.pow,但是我认为这在速度方面可能比两次乘法结合三个基数的副本效率低。也就是说,这在这个应用程序中无关紧要,但在其他应用程序中可能会有问题,因此为什么会显示手写形式。Math.pow实际上是夸大其词:它是数学术语中所谓的解析幂函数的实现,解析幂函数是一个超越函数,通常使用幂级数或其他类似的计算密集型过程实现,涉及超越指数和对数运算,而不是只有三条CPU乘法指令,这是给出的代码可能会编译成的结果。
发布于 2021-01-06 20:32:08
import java.util.Scanner;
public class SphereVolumeCalculator {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
double piVal = 3.14159;
double sphereVolume;
double sphereRadius;
sphereRadius = scnr.nextDouble();
sphereVolume = (4.0 / 3.0) * piVal * (sphereRadius * sphereRadius * sphereRadius);
System.out.println(sphereVolume);
}
}
https://stackoverflow.com/questions/54229316
复制相似问题