JAVA如何将浮点数输出为指定位数的科学计数法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA如何将浮点数输出为指定位数的科学计数法?相关的知识,希望对你有一定的参考价值。
JAVA如何将浮点数输出为指定位数的科学计数法?
我不太理解题目,希望就解释一下
希望可以帮到你:
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
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 参考技术B 使用bigdecimal类型
java - 如何将浮点数转换为 BigDecimal? [复制]
【中文标题】java - 如何将浮点数转换为 BigDecimal? [复制]【英文标题】:java - How to convert Float to BigDecimal? [duplicate] 【发布时间】:2017-09-16 21:54:39 【问题描述】:我想知道如何将java.lang.Float
转换为java.Math.BigDecimal
。这可以实现吗?
【问题讨论】:
如果你需要BigDecimal精度,首先不要使用float
,至少使用double
或将原始数字解析为String
【参考方案1】:
是的,试试这个,
BigDecimal value = new BigDecimal(Float.toString(123.4f));
【讨论】:
以上是关于JAVA如何将浮点数输出为指定位数的科学计数法?的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何将浮点数转换为 BigDecimal? [复制]