diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 5d7e79b..d1ef3a6 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -865,7 +865,7 @@
 				self.get_gl_dict({
 					"account": round_off_account,
 					"against": self.customer,
-					"credit_in_account_currency": self.rounding_adjustment,
+					"credit_in_account_currency": self.base_rounding_adjustment,
 					"credit": self.base_rounding_adjustment,
 					"cost_center": round_off_cost_center,
 				}
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 1a8965e..a661c03 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -139,11 +139,21 @@
 
 def make_round_off_gle(gl_map, debit_credit_diff):
 	round_off_account, round_off_cost_center = get_round_off_account_and_cost_center(gl_map[0].company)
-
+	round_off_account_exists = False
 	round_off_gle = frappe._dict()
-	for k in ["voucher_type", "voucher_no", "company",
-		"posting_date", "remarks", "is_opening"]:
-			round_off_gle[k] = gl_map[0][k]
+	for d in gl_map:
+		if d.account == round_off_account:
+			round_off_gle = d
+			if d.debit_in_account_currency:
+				debit_credit_diff -= flt(d.debit_in_account_currency)
+			else:
+				debit_credit_diff += flt(d.credit_in_account_currency)
+			round_off_account_exists = True
+
+	if not round_off_gle:
+		for k in ["voucher_type", "voucher_no", "company",
+			"posting_date", "remarks", "is_opening"]:
+				round_off_gle[k] = gl_map[0][k]
 
 	round_off_gle.update({
 		"account": round_off_account,
@@ -158,7 +168,8 @@
 		"against_voucher": None
 	})
 
-	gl_map.append(round_off_gle)
+	if not round_off_account_exists:
+		gl_map.append(round_off_gle)
 
 def get_round_off_account_and_cost_center(company):
 	round_off_account, round_off_cost_center = frappe.get_cached_value('Company',  company,
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index f199797..7e579ac 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -89,12 +89,11 @@
 				account_currency = gle_currency
 			else:
 				account_currency = (None if filters.party_type in ["Employee", "Student", "Shareholder", "Member"] else
-					frappe.db.get_value(filters.party_type, filters.party, "default_currency"))
+					frappe.db.get_value(filters.party_type, filters.party[0], "default_currency"))
 
 		filters["account_currency"] = account_currency or filters.company_currency
-
 		if filters.account_currency != filters.company_currency:
-			filters["show_in_account_currency"] = 1
+			filters.presentation_currency = filters.account_currency
 
 	return filters
 
@@ -294,15 +293,6 @@
 		balance = get_balance(d, balance, 'debit', 'credit')
 		d['balance'] = balance
 
-		if filters.get("show_in_account_currency"):
-			balance_in_account_currency = get_balance(d, balance_in_account_currency,
-				'debit_in_account_currency', 'credit_in_account_currency')
-			d['balance_in_account_currency'] = balance_in_account_currency
-		else:
-			d['debit_in_account_currency'] = d.get('debit', 0)
-			d['credit_in_account_currency'] = d.get('credit', 0)
-			d['balance_in_account_currency'] = d.get('balance')
-
 		d['account_currency'] = filters.account_currency
 		d['bill_no'] = inv_details.get(d.get('against_voucher'), '')
 
diff --git a/erpnext/accounts/report/utils.py b/erpnext/accounts/report/utils.py
index d1995d2..e33bd83 100644
--- a/erpnext/accounts/report/utils.py
+++ b/erpnext/accounts/report/utils.py
@@ -2,7 +2,7 @@
 from erpnext import get_company_currency, get_default_company
 from erpnext.setup.utils import get_exchange_rate
 from erpnext.accounts.doctype.fiscal_year.fiscal_year import get_from_and_to_date
-from frappe.utils import cint, get_datetime_str, formatdate
+from frappe.utils import cint, get_datetime_str, formatdate, flt
 
 __exchange_rates = {}
 P_OR_L_ACCOUNTS = list(
@@ -49,7 +49,7 @@
 	:return: Result of converting `value`
 	"""
 	rate = get_rate_as_at(date, from_, to)
-	converted_value = value / (rate or 1)
+	converted_value = flt(value) / (rate or 1)
 	return converted_value
 
 
@@ -97,17 +97,16 @@
 
 	for entry in gl_entries:
 		account = entry['account']
-		debit = cint(entry['debit'])
-		credit = cint(entry['credit'])
-		debit_in_account_currency = cint(entry['debit_in_account_currency'])
-		credit_in_account_currency = cint(entry['credit_in_account_currency'])
+		debit = flt(entry['debit'])
+		credit = flt(entry['credit'])
+		debit_in_account_currency = flt(entry['debit_in_account_currency'])
+		credit_in_account_currency = flt(entry['credit_in_account_currency'])
 		account_currency = entry['account_currency']
 
 		if account_currency != presentation_currency or (account_currency == presentation_currency and not is_p_or_l_account(account)):
 			value = debit or credit
 
 			date = currency_info['report_date'] if not is_p_or_l_account(account) else entry['posting_date']
-
 			converted_value = convert(value, presentation_currency, company_currency, date)
 
 			if entry.get('debit'):
