0

所以,我有那些:

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

我想做这样的事情:

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

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

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

3 回答 3

2

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

把这一切放在一起:

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

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

于 2013-06-07T22:12:53.117 回答
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。

于 2013-06-07T22:36:46.427 回答
-1

那这个呢?

totaluri[l] = new String(Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]));
于 2013-06-07T22:09:11.143 回答