乘以字符串?

时间:2013-06-07 22:07:20

标签: java android string

所以,我有那些:

String[] pret = new String[allcant.size()];
String[] totaluri = new String[allcant.size()];
String[] cant = new String[allcant.size()];

我想做这样的事情:

totaluri[l]=pret[l]*cant[l];`

但我不能。我想我必须让他们漂浮?因为我从edittexts输入得到cant和pret中的值是小数?我怎样才能做到这一点 ? 我试过了,但它不会让我

totaluri[l]=Float.parseFloat(cant[l]) *Float.parseFloat(pret[l]);

3 个答案:

答案 0 :(得分:2)

您需要使用Double.parseDouble()Float.parseDouble()String转换为带小数的数值。然后,您可以使用Double.toString()Float.toString()将计算结果转换回`String。

把这一切放在一起:

double temp = Double.parseDouble(cant[l]) * Double.parseDouble(pret[l]);
totaluri[l] = Double.toString(temp);

我强烈建议您阅读Oracle Java教程中的Primitive Data TypesLesson: Numbers and Strings,以获取有关使用String和Java原始数据类型的更多信息。

答案 1 :(得分:0)

BigDecimal pretBD = BigDecimal.valueOf(pret[i]);
BigDecimal cantBD = BigDecimal.valueOf(cant[i]);
BigDecimal totaluriBD = pretBD.multiply(cantBD).setScale(2);  // Decimals #.##

totaluri[i] = totaluriDB.toString();

键入很多,没有运算符(乘法,加法),但double用于财务目的不足。 5000 * 0.2不会是1000.0。

答案 2 :(得分:-1)

这个怎么样?

totaluri[l] = new String(Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]));