开发者

Java Convert from Scientific Notation to Float

I have a program that I am working on which would effectively convert binary, decimal, or hex numbers to other formats (don't ask why I'm doing this, I honestly don't know). So far I only have a binary - decimal conversion going, and it works fine however whenever the binary number entered is 8 digits or more it crashes.

As far as I can tell when I input the number 10011001 it gets translated to scientific notation and becomes 1.0011001E7 which wouldn't really be a problem, except that the way I am converting the numbers involves creating a string with the same value as the number and breaking it into individual characters. Unfortunately, this means I have a string valu开发者_如何学编程ed "1.0011001E7" instead of "10011001", so when I cut up the characters I hit the "." and the program doesn't know what to do when I try to make calculations with that. So basically my question comes down to this, how do I force it to use the not-scientific notation version for these calculations?

Thanks for all your help, and here is the code if it helps at all:

//This Splits A Single String Of Digits Into An Array Of Individual Digits
public float[] splitDigits(float fltInput){
    //This Declares The Variables
    String strInput = "" + fltInput;
    float[] digit = new float[strInput.length() - 2];
    int m = 0;


    //This Declares The Array To Hold The Answer
    for (m = 0; m < (strInput.length() - 2); m++){
        digit[m] = Float.parseFloat(strInput.substring(m, m + 1)); //Breaks here
    }

    //This Returns The Answer
    return digit;
}


Just use BigDecimal

BigDecimal num = new BigDecimal(fltInput);
String numWithNoExponents = num.toPlainString();

Note here the fltInput will be automatically converted to a double.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜