将double转换为字符串

时间:2011-04-23 19:13:37

标签: java android

我不确定是我还是什么,但我在将double转换为字符串时遇到问题。

这是我的代码:

double total = 44;
String total2 = Double.toString(total);

我做错了什么,或者我在这里错过了一步。

尝试转换时我收到错误NumberFormatException

totalCost.setOnTouchListener(new OnTouchListener() {
  public boolean onTouch(View v, MotionEvent event) {
    try {
      double priceG = Double.parseDouble(priceGal.getText().toString());
      double valG = Double.parseDouble(volGal.toString());
      double total = priceG * valG;
      String tot = new Double(total).toString();
      totalCost.setText(tot);
    } catch(Exception e) {
      Log.e("text", e.toString());
    }

    return false;
  }         
});

我正在尝试在onTouchListener中执行此操作。生病了更多代码,基本上当用户触摸edittext框时,我希望信息计算填充edittext框。

15 个答案:

答案 0 :(得分:433)

double total = 44;
String total2 = String.valueOf(total);

这会将double转换为String

答案 1 :(得分:18)

使用Double.toString(),如果数字太小或太大,您将得到如下科学记数:3.4875546345347673E-6。有几种方法可以更好地控制输出字符串格式。

double num = 0.000074635638;
// use Double.toString()
System.out.println(Double.toString(num));
// result: 7.4635638E-5

// use String.format
System.out.println(String.format ("%f", num));
// result: 0.000075
System.out.println(String.format ("%.9f", num));
// result: 0.000074636

// use DecimalFormat
DecimalFormat decimalFormat = new DecimalFormat("#,##0.000000");
String numberAsString = decimalFormat.format(num);
System.out.println(numberAsString);
// result: 0.000075

使用String.format()将是最方便的方法。

答案 2 :(得分:14)

此代码编译并适用于我。它使用您尝试的调用将double转换为字符串。

public class TestDouble {

    public static void main(String[] args) {
        double total = 44;
        String total2 = Double.toString(total);

        System.out.println("Double is " + total2);
    }
}

我对你看到NumberFormatException感到困惑。查看堆栈跟踪。我猜你有其他代码,你没有在你的示例中显示导致该异常被抛出。

答案 3 :(得分:6)

异常可能来自parseDouble()调用。检查给予该函数的值是否真的反映了double。

答案 4 :(得分:3)

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

它有效。必须重复。

答案 5 :(得分:1)

double total = 44;
String total2= new Double(total).toString();

此代码有效

答案 6 :(得分:1)

double priceG = Double.parseDouble(priceGal.getText().toString());
double valG = Double.parseDouble(volGal.toString());

其中一个是抛出异常。您需要添加一些日志记录/打印以查看volGalpriceGal中的内容 - 这不是您的想法。

答案 7 :(得分:1)

double.toString()应该有效。不是变量类型Double,而是变量本身double

答案 8 :(得分:1)

科特林

您可以直接在Kotlin中的任何数据类型上使用.toString,例如

val d : Double = 100.00
val string : String = d.toString()

答案 9 :(得分:0)

只需使用以下内容:

doublevalue+""; 

这适用于任何数据类型。

示例:

Double dd=10.09;
String ss=dd+"";

答案 10 :(得分:0)

使用StringBuilder类,如下所示:

StringBuilder meme = new StringBuilder(" ");

// Convert and append your double variable
meme.append(String.valueOf(doubleVariable));

// Convert string builder to string
jTextField9.setText(meme.toString());

你会得到你想要的输出。

答案 11 :(得分:0)

当你做

时怎么样?
totalCost.setText(tot);

你刚才

totalCost.setText( "" + total );

“+”<变量>会自动将其转换为字符串

答案 12 :(得分:0)

完整信息

您可以将String.valueOf()用于float,double,int,boolean等。

double d = 0;
float f = 0;
int i = 0;
short i1 = 0;
char c = 0;
boolean bool = false;
char[] chars = {};
Object obj = new Object();


String.valueOf(d);
String.valueOf(i);
String.valueOf(i1);
String.valueOf(f);
String.valueOf(c);
String.valueOf(chars);
String.valueOf(bool);
String.valueOf(obj);

答案 13 :(得分:0)

有三种方法可以将 double转换为String

  1. Double.toString(d)
  2. String.valueOf(d)
  3. “” + d

    公共类DoubleToString {

    a:    4
    c:    2
    k:    444
    

    }

要加倍的字符串

  1. Double.parseDouble(str);

答案 14 :(得分:0)

当您想格式化小数并将其转换为 # A tibble: 5 x 2 Trial Result <int> <int> 1 4 11 2 6 14 3 5 11 4 2 10 5 4 15 String 时很有帮助。

示例:

DecimalFormat

enter image description here

这些是在 DecimalFomat 中作为模式一部分支持的各种符号。