运行时错误6 - 如何使Mod处理双精度? [英] Run-Time Error 6 - How to make Mod handle a double?
本文介绍了运行时错误6 - 如何使Mod处理双精度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Sub rsa()
Dim c1 As Long
Dim c2 As Long
Dim z As Long
Dim e As Long
pt =xa
n = 187
e = 7
对于i = 1 To Len(pt)
b =中$(pt,i,1)
如果b < 然后
z = Asc(UCase(b))
'这是问题:
c = z ^ e Mod n
Text = Text& c
Else
Text = Text&
结束如果
下一步i
单元格(20,4).Value =文本
End Sub
我在 c = z ^ e Mod n
中得到运行时错误。 p>
我尝试过不同的数据类型,但没有解决方案。
解决方案
A Mod B
等于 A - Int(A / B)* B
,所以你可以尝试使用 c = z ^ e - Int(z ^ e / n)* n
而是 c = z ^ e Mod n
。它适用于我
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.
解决方案
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
这篇关于运行时错误6 - 如何使Mod处理双精度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文