作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要编写一个程序,生成 5 行输出,显示程序运行时自 Unix 纪元以来光(在真空中)传播的距离。
在我的代码中,我收到整数过高的错误,并且在使用 print 方法时遇到问题。有人可以帮忙吗?
我收到的错误是:
Assignment02.java:16: error: integer number too large: 9460730472580
long ly = km / 9460730472580;
^
Assignment02.java:20: error: ')' expected
"Since the Unix epoch, light has traveled..."
^
Assignment02.java:25: error: not a statement
(km), au, ly, pc);
^
Assignment02.java:25: error: ';' expected
(km), au, ly, pc);
^
Assignment02.java:25: error: not a statement
(km), au, ly, pc);
^
Assignment02.java:25: error: ';' expected
(km), au, ly, pc);
^
Assignment02.java:25: error: not a statement
(km), au, ly, pc);
^
Assignment02.java:25: error: ';' expected
(km), au, ly, pc);
^
Assignment02.java:25: error: not a statement
(km), au, ly, pc);
^
Assignment02.java:25: error: ';' expected
(km), au, ly, pc);
这是我的代码:
public class Assignment02 {
public static void main (String[] args) {
// Stores the return value of System.currentTimeMillis() in variab$
long now = System.currentTimeMillis();
// Calculation of how far light has travelled until "now" in kilometer$
long km = (299792 * now)/1000 ;
// Calculatuion of how far light has travelled until "now" in astronomical units$
long au = km / 149597870;
// Calculation of how far light has travelled until "now" in light years$
long ly = km / 9460730472580;
// Calculation of how far light has traveled until "now" in parsecs
long pc = km / 3.085677581e16;
System.out.printf(
"Since the Unix epoch, light has traveled..."+
"%d km"+
"%d au"+
"%d ly"+
"%d pc",
(km), au, ly, pc);
}
}
最佳答案
您可以像这样修复编译错误并打印语句:
L
,使其成为 long
文字。long
的强制转换以转换 double
值。%n
来打印格式字符串,以便在输出中添加换行符。long now = System.currentTimeMillis();
long km = (299792 * now)/1000 ;
long au = km / 149597870;
long ly = km / 9460730472580L;
long pc = (long) (km / 3.085677581e16);
System.out.printf("Since the Unix epoch, light has traveled...%n"+
"%d km%n"+
"%d au%n"+
"%d ly%n"+
"%d pc",
(km), au, ly, pc);
当然,您可能实际上想要输出double
值,而不是long
值:
long now = System.currentTimeMillis();
long km = (299792 * now)/1000 ;
long au = km / 149597870;
double ly = km / 9460730472580d;
double pc = km / 3.085677581e16;
System.out.printf("Since the Unix epoch, light has traveled...%n"+
"%d km%n"+
"%d au%n"+
"%.1f ly%n"+
"%f pc",
(km), au, ly, pc);
输出
Since the Unix epoch, light has traveled...
451349163977648 km
3017082 au
47.7 ly
0.014627 pc
关于java - 我计算光行进距离的代码出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46250431/
self.hitBall = function(ball, x, y) { var angle = Math.atan2((x - ball.centerX), (y - ball.cente
我是一名优秀的程序员,十分优秀!