以数字序列统一10 ^ x幂

时间:2012-08-28 18:25:47

标签: java scientific-notation

我有一系列这样的数字:

1.687155E21
3.981457E19
0.5532155E21 
3.018843E21
2.0532155E21 
4.5532155E21
3.1637913E19

我的问题是如何将以10 ^ 19结尾的两个数字转换为其他数字(10 ^ 21)。因为在这种统一之后我需要截断数字以仅打印类似于3.5的内容。

在C / C ++中我知道如何使用精度,但在Java中我不知道。

4 个答案:

答案 0 :(得分:2)

将所有数字除以/ 1e19,四舍五入到您想要的十进制数字:

168.7155
3.981457
55.32155
301.8843
205.32155
455.32155
3.1637913

答案 1 :(得分:2)

使用Formatter类将它们带入所需的科学记数法(java.util.Formatter

答案 2 :(得分:1)

我建议使用与Tomasz Nurkiewicz类似的东西,但不是除以1E19除以1E21,而是使用Formatter将它们转换为具有所需精度的字符串(请参阅count0的注释)但不是科学的格式,而是一般的格式。最后,只需将E21添加到这些字符串中即可。最后你应该得到(我希望,我有正确的想法)

1.687155E21
0.03981457E21
0.5532155E21 
3.018843E21
2.0532155E21 
4.5532155E21
0.031637913E21

答案 3 :(得分:0)

您不能将E19数字乘以10 ^ 2 = 100吗?

将它们标准化为E21之后,您应该能够将它们全部除以10^21(如果它们是浮点数),它们都将在0-9.999范围内...