Java 缩短超大数字的可能方法?
这是我程序中双“m”的值(经过计算后的行星质量,该值专门针对地球质量)Java 缩短超大数字的可能方法?,java,math,decimal,rounding,Java,Math,Decimal,Rounding,这是我程序中双“m”的值(经过计算后的行星质量,该值专门针对地球质量) 5.9734054370474745E24 使用System.out.println(m)打印时; 输出是 5.9734054370474745E24(正确输出) 使用System.out.println(数学舍入(m))打印时; 输出是 9223372036854775807(输出不正确) 我如何缩短m的值,使其适合%6s? 比如像这样 5.97E24 下面是我的代码。赋值要求我们在格式化的图表中输出最
- 5.9734054370474745E24
- 5.9734054370474745E24(正确输出)
- 9223372036854775807(输出不正确)
- 5.97E24
下面是我的代码。赋值要求我们在格式化的图表中输出最终值(正如我在下面尝试的那样)
这就是输出的样子。由于m的长值,第二条直线的中心偏移
The radius is: 6378 kilometers.
The mass is: 5.973405437304745E24 kg.
The escape velocity is: 11181 m/s.
Radius: 6378 km.
Mass: 9223372036854775807 kg.
Escape Velocity: 11181 m/s.
您可以使用以下代码:
double x=5.9734054337304745e24;
系统输出打印F(“质量:%.2e kg.%n”,x);
输出质量:5.97e+24 kg。
%.2e
格式化数字,%n
只添加一个换行符。.2
指定点后需要两位小数。e
向格式化程序请求科学符号
Math.round()
的问题是,结果存储在一个long
中,它不能代表这么大的数字。啊,我明白了,谢谢你的反馈。使用您的代码,输出要短得多,但语句的下一部分似乎打印在新行上。有没有办法解决这个问题?System.out.format(“\n%20s%.2e%n%20s”,“Mass:”,m,“kg”);这就是我正在使用的那一行,“kg”不知何故被打印在一个新的行上。去掉%n
,这是一个新的行。或者,可能是你的控制台不够宽:oThanks boss!工作得很好。
The radius is: 6378 kilometers.
The mass is: 5.973405437304745E24 kg.
The escape velocity is: 11181 m/s.
Radius: 6378 km.
Mass: 9223372036854775807 kg.
Escape Velocity: 11181 m/s.