JAVA如何将浮点数输出为指定位数的科学计数法?
展开全部
希望可以帮到你:
@Test
public void test4(){
float exp1 = 1.39e-43f;
System.out.println("科学计数法1==" + exp1);// 表示1.39乘以10的负43次方
double exp2 = 47 * 10000000000000000000000000000000000000d;
System.out.println("科学计数法2==" + exp2);// 表示47乘以10的37次方===4.7E38
float exp3 = 1e-43f;// 此时43后面必须加上f,否则会报错.编译器同擦汗那个会将指数最为双精度处理。
System.out.println("科学计数法3==" + exp3);// 表示1乘以10的负43次方
System.out.printf("%9.2f",exp3);
System.out.printf("%-9.2f",exp3);
// long n = 200;// 此时不需要在200后面加l,因为编译器能识别这个类型,在这里不存在含混不清的地方。
// System.out.println(n);
//
// double d = 345.678;
// String s = "hello!";
// int i = 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$"表示第几个变量。
}
追问
为什么
System.out.printf("%9.2f",exp3);
System.out.printf("%-9.2f",exp3);
这两段代码我的输出结果是0.00
2016-01-19 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
JAVA输出指定位数的科学计数方法:
public static String parseToCientificNotation(double value) {
int cont = 0;
java.text.DecimalFormat DECIMAL_FORMATER = new java.text.DecimalFormat("0.##");
while (((int) value) != 0) {
value /= 10;
cont++;
}
return DECIMAL_FORMATER.format(value).replace(",", ".") + " x10^ -" + cont;
}
调用方法:
parseToCientificNotation(123332.4);
输出:0.1233324 x10^ 6
public static String parseToCientificNotation(double value) {
int cont = 0;
java.text.DecimalFormat DECIMAL_FORMATER = new java.text.DecimalFormat("0.##");
while (((int) value) != 0) {
value /= 10;
cont++;
}
return DECIMAL_FORMATER.format(value).replace(",", ".") + " x10^ -" + cont;
}
调用方法:
parseToCientificNotation(123332.4);
输出:0.1233324 x10^ 6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用bigdecimal类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询