运行时错误6 - 如何使Mod处理双精度? [英] Run-Time Error 6 - How to make Mod handle a double?

查看:174
本文介绍了运行时错误6 - 如何使Mod处理双精度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我总是在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

对于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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆