我正在一个需要对货币执行简单数学运算的项目中工作,但是它以字符串形式到达。由于我是Java/Android的新手,因此我寻求帮助将其从字符串转换为适用于此操作的数据类型。一开始,我认为Float是正确的,但在阅读其他资料并介绍数字类之后,似乎BigDecimal是正确的。 我是否走在正确的轨道上?此时,我只想从初始发票金额中减去付款总额。我感觉这段代码虽然简单但笨拙,而且我怀疑我正在忽略很多与处理货币相关的微妙之处。你会如何做?非常感谢您的所有建议!
// capture variables from sending activity
String invoiceAmt = getIntent().getStringExtra("invoiceAmt");
String paymentsSum = getIntent().getStringExtra("paymentsSum");
// convert strings to BigD's
BigDecimal amt = new BigDecimal(invoiceAmt);
BigDecimal sum = new BigDecimal(paymentsSum);
// Do the math
BigDecimal invDue = amt.subtract(sum);
// insert the value (back to string) into textView
TextView tvInvoiceDue = (TextView)findViewById(R.id.InvoiceDue);
tvInvoiceDue.setText(invDue.toString());