⑴ java 怎么把科学记数法转换成string
public static void main(String[] args) { BigDecimal bd = new BigDecimal("1.03219E+14"); System.out.println(bd.toPlainString()); }
⑵ Java中如何使用科学计数法
java支持输入数字的时候直接使用科学计数法:
double
d
=
1.213123123123e100;
如果太大了或者小树点太多了好像会损失精度。
另外如果真的不行就用java.math.BigDecimal,里面是用字符串处理数据的要多长有多长,就是速度比较慢
⑶ java代码怎么把科学计数法转换为具体数字
首先,需要将科学计数法转换成一下:
例如:
BigDecimal bd = new BigDecimal("3.40256010353E11");
然后转换成字符串:
String str = bd.toPlainString();
如果这个数字的长度是在int的范围内的话,是可以转换成int类型:
int a = Integer.parsInt(str);
如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了!
⑷ java科学记数法如何转化成普通记数法
可以借助java.text.DecimalFormat类,先将科学记数法转为指定的格式的字符串,再转为需要的普通计数法。代码可以参考:
doublea=1.1234546789E6;
java.text.DecimalFormatdf=newjava.text.DecimalFormat("00.00");//""00.00"小数点后面的0的个数表示小数点的个数
Stringb=df.format(a);
⑸ JAVA 关于科学计数法的解决
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
⑹ 如何实现将java中Double类型的科学计数法转换为指定格式显示
DecimalFormatdf=newDecimalFormat("##0.#####E0");
System.out.println(df.format(6.36000));
用格式转化的这个类,查一下api里有更详细的介绍,查一下吧
⑺ java中数值类型转换的问题,double类型显示科学计数法了。
在显示时候调用的是Double类的toString()方法。原因如下:
那么decExponent属性究竟是什么呢?简单来说,
就是小数点向左移动decExponent就是正数,向右移动就是负数。移动几位就是几。
而具体移动规则是移动到小数点左边为0,右边为非0时候停止。