java科学计数法
Ⅰ java科学记数法如何转化成普通记数法
可以借助java.text.DecimalFormat类,先将科学记数法转为指定的格式的字符串,再转为需要的普通计数法。代码可以参考:
doublea=1.1234546789E6;
java.text.DecimalFormatdf=newjava.text.DecimalFormat("00.00");//""00.00"小数点后面的0的个数表示小数点的个数
Stringb=df.format(a);
Ⅱ java代码怎么把科学计数法转换为具体数字
首先,需要将科学计数法转换成一下:
例如:
BigDecimal bd = new BigDecimal("3.40256010353E11");
然后转换成字符串:
String str = bd.toPlainString();
如果这个数字的长度是在int的范围内的话,是可以转换成int类型:
int a = Integer.parsInt(str);
如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了!
Ⅲ java科学计数法是否只能用浮点值
应该可以,你在整数后面加上*1.0就没有问题
Ⅳ java 如何将2.12转换成科学计数法2.1200e+00显示
将2.12转换成科学计数法2.1200e+00显示的Java程序如下
publicclassA{
publicstaticvoidmain(String[]args){
doubled=2.12;
Strings=String.format("%e",d);//%e表示结果被格式化为用计算机科学记数法表示的十进制数
System.out.println(s);
}
}
运行结果
2.120000e+00
Ⅳ JAVA如何将浮点数输出为指定位数的科学计数法
希望可以帮到你:
@Test
publicvoidtest4(){
floatexp1=1.39e-43f;
System.out.println("科学计数法1=="+exp1);//表示1.39乘以10的负43次方
doubleexp2=47*;
System.out.println("科学计数法2=="+exp2);//表示47乘以10的37次方===4.7E38
floatexp3=1e-43f;//此时43后面必须加上f,否则会报错.编译器同擦汗那个会将指数最为双精度处理。
System.out.println("科学计数法3=="+exp3);//表示1乘以10的负43次方
System.out.printf("%9.2f",exp3);
System.out.printf("%-9.2f",exp3);
// longn=200;//此时不需要在200后面加l,因为编译器能识别这个类型,在这里不存在含混不清的地方。
// System.out.println(n);
//
// doubled=345.678;
// Strings="hello!";
// inti=1234;
// //"%"表示进行格式化输出,"%"之后的内容为格式的定义。
// System.out.printf("%f",d);//"f"表示格式化输出浮点数。
// System.out.printf("%9.2f",exp3);//"9.2"中的9表示输出的长度,2表示小数点后的位数。
// System.out.printf("%+9.2f",d);//"+"表示输出的数带正负号。
// System.out.printf("%-9.4f",d);//"-"表示输出的数左对齐(默认为右对齐)。
// System.out.printf("%+-9.3f",d);//"+-"表示输出的数带正负号且左对齐。
// System.out.printf("%d",i);//"d"表示输出十进制整数。
// System.out.printf("%o",i);//"o"表示输出八进制整数。
// System.out.printf("%x",i);//"d"表示输出十六进制整数。
// System.out.printf("%#x",i);//"d"表示输出带有十六进制标志的整数。
// System.out.printf("%s",s);//"d"表示输出字符串。
// System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s",d,i,s);//可以输出多个变量,注意顺序。
// System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x",i,s);//"X$"表示第几个变量。
}
Ⅵ 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类型显示科学计数法了。
在显示时候调用的是Double类的toString()方法。原因如下:
那么decExponent属性究竟是什么呢?简单来说,
就是小数点向左移动decExponent就是正数,向右移动就是负数。移动几位就是几。
而具体移动规则是移动到小数点左边为0,右边为非0时候停止。
Ⅷ java使用poi读取excel时,电话号码变成了科学计数法,整数变成double,怎么改过来
为了防止数字变成科学计数法方式表示,在源文件以及java代码中都用文的方式去生成和解析excel,具体如下:
生成Excel时,设置单元格格式为STRING,即:
//关键代码
HSSFCell cell = new HSSFCell();
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
同理,解析的时候,首先要保证源excel文件中该单元格格式是文本类型的,然后在java代码里用STRING类型去解析:
//关键代码
String value = cell.getStringCellValue();
(8)java科学计数法扩展阅读;
在这里,将只介绍一些和格式设置有关的语句,假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:
创建字体,设置其为红色、粗体:
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);