Java Double to String conversion without formatting

前端 未结 9 1289
余生分开走
余生分开走 2020-12-06 09:29

I have the number 654987. Its an ID in a database. I want to convert it to a string. The regular Double.ToString(value) makes it into scientific form, 6.54987E5. Something

相关标签:
9条回答
  • 2020-12-06 09:37
        double d = 56789;
        String s = d+"";
    
    0 讨论(0)
  • 2020-12-06 09:38

    Also you can use

    double value = getValue();
    
    NumberFormat f = NumberFormat.getInstance();
    f.setGroupingUsed(false);
    
    String strVal = f.format(value);
    
    0 讨论(0)
  • 2020-12-06 09:42

    If what you are storing is an ID (i.e. something used only to identify another entity, whose actual numeric value has no significance) then you shouldn't be using Double to store it. Precision will almost certainly screw you.

    If your database doesn't allow integer values then you should stored IDs as strings. If necessary make the string the string representation of the integer you want to use. With appropriate use of leading zeros you can make the alphabetic order of the string the same as the numeric order of the ints.

    That should get you round the issue.

    0 讨论(0)
  • 2020-12-06 09:49

    What about:

    Long.toString(value)
    

    or

    new String(value)
    
    0 讨论(0)
  • 2020-12-06 09:50

    If it's an integer id in the database, use an Integer instead. Then it will format as an integer.

    0 讨论(0)
  • 2020-12-06 09:56

    Use a fixed NumberFormat (specifically a DecimalFormat):

    double value = getValue();
    String str = new DecimalFormat("#").format(value);
    

    alternatively simply cast to int (or long if the range of values it too big):

    String str = String.valueOf((long) value);
    

    But then again: why do you have an integer value (i.e. a "whole" number) in a double variable in the first place?

    0 讨论(0)
提交回复
热议问题