Run-Time Error 6 - How to make Mod handle a double?

excel, vba

Solution

`A Mod B` is equals to `A - Int(A / B) * B`, so you can try to use `c = z ^ e - Int(z ^ e / n) * n` instead `c = z ^ e Mod n`. It works for me

Problem

I get always a runtime error in vba: ``` Sub rsa() Dim c1 As Long Dim c2 As Long Dim z As Long Dim e As Long pt = "xa" n = 187 e = 7 For i = 1 To Len(pt) b = Mid$(pt, i, 1) If b <> " " Then z = Asc(UCase(b)) 'Here is the problem: c = z ^ e Mod n Text = Text & c Else Text = Text & " " End If Next i Cells(20, 4).Value = Text End Sub ``` I get the runtime error at `c = z ^ e Mod n`. I tried different datatypes, but without a solution.

Original source