Моя проблема в том, что в настоящее время у меня есть значение £ 17,40, затем оно конвертируется в евро, которое становится € 20,01.при выборе кнопки, которая округляет сумму до 20,00 евро, но должна читаться 30,00 евро (следующая сумма, равная 30 евро).
private fun getNextLogicalCashAmount(currentAmount: Double = getBasket()?.getAmountRemaining() ?: 0.00): Double
{
var amount = ((Math.ceil(currentAmount) / 10.00).toInt() * 10).toDouble()
if (amount <= currentAmount )
{
amount += 10
}
return amount
}
private fun setConvertedAmount(amount: Double)
{
val nativeFormatter = LocalityHelper.getNumberFormatter()
converted_amount?.visibility = if (amount > 0.00) View.VISIBLE else View.INVISIBLE
converted_amount?.text = getString(R.string.same_as_amount, nativeFormatter.format(convertBack(amount)))
}
/**
* Return the custom amount entered into the EditText as a Double.
*/
private fun getCustomAmount(): Double
{
return try
{
custom_amount?.text.toString().toDouble()
}
catch (e: Exception)
{
0.00
}
}
private fun convert(amount: Double): Double = providers.getCurrencyConverter().convert(
amount,
providers.getMarketOptions().getCurrencyCode(),
providers.getStoreOptions().getForeignCurrencyCode()!!
)
private fun convertBack(amount: Double): Double = providers.getCurrencyConverter().convert(
amount,
providers.getStoreOptions().getForeignCurrencyCode()!!,
providers.getMarketOptions().getCurrencyCode()
)
private fun takePayment(amount: Double, foreignAmount: Double)
{
if (amount > 0.00 && foreignAmount > 0.00)
{
CashDrawerDialog().setListener { addPayment(amount, foreignAmount, it) }.show(this)
}
else
{
Toast.makeText(context, R.string.enter_valid_amount, Toast.LENGTH_SHORT).show()
}
}
Кажется, я все еще собираюстоимость от £.Поэтому, когда £ достигает £ 20, € изменится на € 30,00, но когда иностранная валюта будет стоить € 20,1, она все равно будет отображаться как € 20,00.