Java 科学符号

Java 科学符号,java,decimal,scientific-notation,Java,Decimal,Scientific Notation,我正在研究一个朋友给我的问题。我需要以x.yzw*10^p的形式输入数字,其中p为非零,x.yzw可以为零。我已经做了这个程序,但问题是当我们有像0.098这样的数字时,十进制格式将使它成为9.8,但我需要使它成为9.800,它必须始终作为x.yzw*10^p输出。有人能告诉我这是怎么可能的吗 input: output: 1234.56 1.235 x 10^3 1.2 1.200 0.098 9.800 x 10^-2 代码: 然后,您只需搜索并替换E: St

我正在研究一个朋友给我的问题。我需要以
x.yzw*10^p
的形式输入数字,其中
p
为非零,
x.yzw
可以为零。我已经做了这个程序,但问题是当我们有像
0.098
这样的数字时,十进制格式将使它成为
9.8
,但我需要使它成为
9.800
,它必须始终作为
x.yzw*10^p
输出。有人能告诉我这是怎么可能的吗

input:    output:
1234.56   1.235 x 10^3
1.2       1.200
0.098     9.800 x 10^-2
代码:

然后,您只需搜索并替换E:

String replaced = formatted.replaceAll("E", " x 10^");
然后,如果要将“输出”转换为数字,请使用:

Float answer = Float.parseFloat(output)
编辑


此外,它还包含有关如何设置数字格式的更多信息

使格式字符串为“.000”,并且它不会从已设置格式的数字中删除“空”零;它应该可以相对容易地完成你想要的大部分工作,但如果我这样做,它就不会转化为科学形式。。我怎样才能让它同时做到这两个呢?@user:出于好奇/后代,你是如何让它同时做到这两个的?我刚刚做了DecimalFormat myFormatter=new DecimalFormat(“0.000E0”);它似乎起作用了。
String replaced = formatted.replaceAll("E", " x 10^");
DecimalFormat myFormatter = new DecimalFormat(".000");
String output = myFormatter.format(input)
Float answer = Float.parseFloat(output)