格式化字符串以删除科学符号-Java
我有以下代码,它拆分一个数字字符串(用空格分隔),然后创建一个浮点数组:格式化字符串以删除科学符号-Java,java,string,floating-point,bigdecimal,Java,String,Floating Point,Bigdecimal,我有以下代码,它拆分一个数字字符串(用空格分隔),然后创建一个浮点数组: //Split the string and then build a float array with the values. String[] tabOfFloatString = value.split(" "); int length = tabOfFloatString.length; System.out.println("Length of float string is" + length); float[
//Split the string and then build a float array with the values.
String[] tabOfFloatString = value.split(" ");
int length = tabOfFloatString.length;
System.out.println("Length of float string is" + length);
float[] floatsArray = new float[length];
for (int l=0; l<length; l++) {
float res = Float.parseFloat(tabOfFloatString[l]);
System.out.println("Float is " + res);
floatsArray[l]=res;
}
//拆分字符串,然后使用值构建浮点数组。
字符串[]TabOffloutString=value.split(“”);
int length=taboffloutString.length;
System.out.println(“浮点字符串的长度为”+长度);
float[]floatsArray=新的float[长度];
对于(int l=0;l,浮点不包含e
,这正是它的显示方式。您可以使用DecimalFormat
更改它的显示方式
不过,由于浮点数的原因,您会注意到一些看起来很奇怪的数字。下面是您的代码稍微修改过的部分。据我所知,这很有效,实际上并不关心指数的顺序:
public void function() {
String value = "123456.0023 -3.04567E-8 -3.01967E-20";
String[] tabOfFloatString = value.split(" ");
int length = tabOfFloatString.length;
System.out.println("Length of float string is" + length);
float[] floatsArray = new float[length];
for (int l = 0; l < length; l++) {
String res = new BigDecimal(tabOfFloatString[l]).toPlainString();
System.out.println("Float is " + res);
floatsArray[l] = Float.parseFloat(res);
}
}
public void函数(){
字符串值=“123456.0023-3.04567E-8-3.01967E-20”;
字符串[]TabOffloutString=value.split(“”);
int length=taboffloutString.length;
System.out.println(“浮点字符串的长度为”+长度);
float[]floatsArray=新的float[长度];
对于(int l=0;l
接受回答对我不起作用,什么时候做
floatsArray[l] = Float.parseFloat(res);
parseFloat(res)将非科学的anotation更改为科学的anotation,因此我必须删除它
这个成功了:
public String[] avoidScientificNotation(float[] sensorsValues)
{
int length = sensorsValues.length;
String[] valuesFormatted = new String[length];
for (int i = 0; i < length; i++)
{
String valueFormatted = new BigDecimal(Float.toString(sensorsValues[i])).toPlainString();
valuesFormatted[i] = valueFormatted;
}
return valuesFormatted;
}
公共字符串[]avoidScientificNotation(浮点[]传感器值)
{
int length=传感器值.length;
字符串[]值格式化=新字符串[长度];
for(int i=0;i
float不包含E数字。科学表示法是表示float的方法之一。如果默认格式不适用,请查看java.text.DecimalFormat。
floatsArray[l] = Float.parseFloat(res);
public String[] avoidScientificNotation(float[] sensorsValues)
{
int length = sensorsValues.length;
String[] valuesFormatted = new String[length];
for (int i = 0; i < length; i++)
{
String valueFormatted = new BigDecimal(Float.toString(sensorsValues[i])).toPlainString();
valuesFormatted[i] = valueFormatted;
}
return valuesFormatted;
}