所以,我有那些:
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]);
答案 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 Types和Lesson: 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]));