 
 				if sign
 				{
-					if let safeAfterExp = Int(afterExp) {
+					if var safeAfterExp = Int(afterExp) {
+                        if beforeExp.starts(with: "+") || beforeExp.starts(with: "-") {
+                            safeAfterExp = safeAfterExp - beforeExp.count + 2
+                        } else {
+                            safeAfterExp = safeAfterExp - beforeExp.count + 1
+                        }
 						let den = ["1"] + [Character](repeating: "0", count: safeAfterExp)
 						self.init(beforeExp, over: String(den))
 						return

		{
			return String(format: "%.1f kb", Double(bits) / 8_000.0)
		}
		if bits < 8_000_000_000
		{
			return String(format: "%.1f mb", Double(bits) / 8_000_000.0)
		}

				}
				else
				{
					if var safeAfterExp = Int(afterExp) {
                        if beforeExp.starts(with: "+") || beforeExp.starts(with: "-") {
                            safeAfterExp = safeAfterExp - beforeExp.count + 2
                        } else {
                            safeAfterExp = safeAfterExp - beforeExp.count + 1
                        }
						let num = beforeExp + String([Character](repeating: "0", count: safeAfterExp))
						self.init(num, over: "1")
						return
