我不确定是我还是什么,但我在将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框。
答案 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());
其中一个是抛出异常。您需要添加一些日志记录/打印以查看volGal
和priceGal
中的内容 - 这不是您的想法。
答案 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 。
“” + d
公共类DoubleToString {
a: 4
c: 2
k: 444
}
要加倍的字符串
答案 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
这些是在 DecimalFomat 中作为模式一部分支持的各种符号。