diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js
index c2e76e2..e21ff74 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.js
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.js
@@ -210,14 +210,15 @@
 	calculate_totals: function() {
 		var tax_count = this.frm.tax_doclist.length;
 		this.frm.doc.grand_total = flt(tax_count ?
-			this.frm.tax_doclist[tax_count - 1].total : this.frm.doc.net_total,
-			precision("grand_total"));
-		this.frm.doc.grand_total_import = flt(this.frm.doc.grand_total /
-			this.frm.doc.conversion_rate, precision("grand_total_import"));
+			this.frm.tax_doclist[tax_count - 1].total : this.frm.doc.net_total);
+		this.frm.doc.grand_total_import = flt(this.frm.doc.grand_total / this.frm.doc.conversion_rate);
 
 		this.frm.doc.total_tax = flt(this.frm.doc.grand_total - this.frm.doc.net_total,
 			precision("total_tax"));
 
+		this.frm.doc.grand_total = flt(this.frm.doc.grand_total, precision("grand_total"));
+		this.frm.doc.grand_total_import = flt(this.frm.doc.grand_total_import, precision("grand_total_import"));
+
 		// rounded totals
 		if(frappe.meta.get_docfield(this.frm.doc.doctype, "rounded_total", this.frm.doc.name)) {
 			this.frm.doc.rounded_total = Math.round(this.frm.doc.grand_total);
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index fc912c9..1e6e65d 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -110,13 +110,13 @@
 		self.round_floats_in(self, ["net_total", "net_total_import"])
 
 	def calculate_totals(self):
-		self.grand_total = flt(self.tax_doclist[-1].total if self.tax_doclist
-			else self.net_total, self.precision("grand_total"))
-		self.grand_total_import = flt(self.grand_total / self.conversion_rate,
-			self.precision("grand_total_import"))
+		self.grand_total = flt(self.tax_doclist[-1].total if self.tax_doclist else self.net_total)
+		self.grand_total_import = flt(self.grand_total / self.conversion_rate)
 
-		self.total_tax = flt(self.grand_total - self.net_total,
-			self.precision("total_tax"))
+		self.total_tax = flt(self.grand_total - self.net_total, self.precision("total_tax"))
+
+		self.grand_total = flt(self.grand_total, self.precision("grand_total"))
+		self.grand_total_import = flt(self.grand_total_import, self.precision("grand_total_import"))
 
 		if self.meta.get_field("rounded_total"):
 			self.rounded_total = rounded(self.grand_total)
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 86d8837..6e93c30 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -216,17 +216,17 @@
 		self.round_floats_in(self, ["net_total", "net_total_export"])
 
 	def calculate_totals(self):
-		self.grand_total = flt(self.tax_doclist and \
-			self.tax_doclist[-1].total or self.net_total, self.precision("grand_total"))
-		self.grand_total_export = flt(self.grand_total / self.conversion_rate,
-			self.precision("grand_total_export"))
+		self.grand_total = flt(self.tax_doclist[-1].total if self.tax_doclist else self.net_total)
 
-		self.other_charges_total = flt(self.grand_total - self.net_total,
-			self.precision("other_charges_total"))
+		self.grand_total_export = flt(self.grand_total / self.conversion_rate)
 
-		self.other_charges_total_export = flt(self.grand_total_export -
-			self.net_total_export + flt(self.discount_amount),
-			self.precision("other_charges_total_export"))
+		self.other_charges_total = flt(self.grand_total - self.net_total, self.precision("other_charges_total"))
+
+		self.other_charges_total_export = flt(self.grand_total_export - self.net_total_export +
+			flt(self.discount_amount), self.precision("other_charges_total_export"))
+
+		self.grand_total = flt(self.grand_total, self.precision("grand_total"))
+		self.grand_total_export = flt(self.grand_total_export, self.precision("grand_total_export"))
 
 		self.rounded_total = rounded(self.grand_total)
 		self.rounded_total_export = rounded(self.grand_total_export)
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index fd16258..783474c 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -341,11 +341,8 @@
 		var me = this;
 		var tax_count = this.frm.tax_doclist.length;
 
-		this.frm.doc.grand_total = flt(
-			tax_count ? this.frm.tax_doclist[tax_count - 1].total : this.frm.doc.net_total,
-			precision("grand_total"));
-		this.frm.doc.grand_total_export = flt(this.frm.doc.grand_total / this.frm.doc.conversion_rate,
-			precision("grand_total_export"));
+		this.frm.doc.grand_total = flt(tax_count ? this.frm.tax_doclist[tax_count - 1].total : this.frm.doc.net_total);
+		this.frm.doc.grand_total_export = flt(this.frm.doc.grand_total / this.frm.doc.conversion_rate);
 
 		this.frm.doc.other_charges_total = flt(this.frm.doc.grand_total - this.frm.doc.net_total,
 			precision("other_charges_total"));
@@ -353,6 +350,9 @@
 			this.frm.doc.net_total_export + flt(this.frm.doc.discount_amount),
 			precision("other_charges_total_export"));
 
+		this.frm.doc.grand_total = flt(this.frm.doc.grand_total, precision("grand_total"));
+		this.frm.doc.grand_total_export = flt(this.frm.doc.grand_total_export, precision("grand_total_export"));
+
 		this.frm.doc.rounded_total = Math.round(this.frm.doc.grand_total);
 		this.frm.doc.rounded_total_export = Math.round(this.frm.doc.grand_total_export);
 	},
