
JAVA 关于科学计数法的解决
有下列数字2,0.1234,3.4E-5,0.1234,0.1234怎么把其中的3.4E-5转成正常的数字进行比较然后在转回去?具体点哦!...
有下列数字 2,0.1234,3.4E-5,0.1234,0.1234 怎么把其中的3.4E-5转成正常的数字 进行比较 然后在转回去? 具体点哦!
展开
2个回答
2013-05-22
展开全部
import java.util.Arrays;
class Animal
{
static String str = "3.4E-5";
static double 转换后的数 = 0;
public static void main(String[] args)
{
Animal animal = new Animal();
转换后的数 = animal.conversion(str);
double[] buf = {2,0.1234,转换后的数,0.1234,0.1234};
String[] ss = new String[buf.length];
Arrays.sort(buf);//从小到大排列
for(int i = 0; i < buf.length;i++)
{
if(buf[i] == 转换后的数)//如果是原来的科学计数,将原来的str存至ss数组
{
ss[i] = str;
}
else
ss[i] = buf[i] + "";
}//打印出排列后的结果
System.out.print("比较后:" );
for(String s : ss)
System.out.print(s + " "); }
//将科学计数转换成正常数字
public double conversion(String str)
{
String[] s = str.split("E-");
double num1 = Double.parseDouble(s[0]);
double num2 = Double .parseDouble(s[1]);
return num1 * Math.pow(10d, num2);
}
} 运行结果:比较后:0.1234 0.1234 0.1234 2.0 3.4E-5
class Animal
{
static String str = "3.4E-5";
static double 转换后的数 = 0;
public static void main(String[] args)
{
Animal animal = new Animal();
转换后的数 = animal.conversion(str);
double[] buf = {2,0.1234,转换后的数,0.1234,0.1234};
String[] ss = new String[buf.length];
Arrays.sort(buf);//从小到大排列
for(int i = 0; i < buf.length;i++)
{
if(buf[i] == 转换后的数)//如果是原来的科学计数,将原来的str存至ss数组
{
ss[i] = str;
}
else
ss[i] = buf[i] + "";
}//打印出排列后的结果
System.out.print("比较后:" );
for(String s : ss)
System.out.print(s + " "); }
//将科学计数转换成正常数字
public double conversion(String str)
{
String[] s = str.split("E-");
double num1 = Double.parseDouble(s[0]);
double num2 = Double .parseDouble(s[1]);
return num1 * Math.pow(10d, num2);
}
} 运行结果:比较后:0.1234 0.1234 0.1234 2.0 3.4E-5
2013-05-22
展开全部
首先你可以把3.4e转换成,这个主要是考你对数据类型的把握,不然不同的数据类型会算出不同的值。做完运算后,你可以再转回去啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询