如何在小数点左边加零?

how to Add zero on the left of decimal number?

此代码用于从 Ascii 转换为十进制,但我无法在(2 位数字)左侧添加零

Dim sText As String 
Dim i As Integer 
Dim lenText As Integer 
sText = TextBox6.Text 
lenText = Len(sText) 
For i = 1 To lenText 
    sASC = sASC & CStr(Asc(Mid$(sText, i, 1))) 
Next i 
m = sASC `

如果我没理解错的话,你想在结果字符串的两位十进制值中用一个零填充,那么你可以这样做:

<HideModuleName>
Public Module StringExtensions

    <Extension>
    Public Function ToDecimals(ByVal sender As String) As String

        Dim sb As New StringBuilder(capacity:=(sender.Length * 3))
        For Each c As Char In sender
            sb.AppendFormat("{0:000}", Convert.ToInt32(c))
        Next c
        Return sb.ToString

    End Function

End Module

用法:

Dim dec As String = "ABC".ToDecimals()
Console.WriteLine(dec)

这将产生:

065066067


更新

Private Sub ButtonCalc_Click() Handles ButtonCalc.Click

    Dim input As String = Me.TextBox1.Text
    Me.TextBox2.Text = StringToDecimals(input)

End sub

' Rehusable function.
Public Shared Function StringToDecimals(ByVal str As String) As String

    Dim sb As New StringBuilder(capacity:=(str.Length * 3))
    For Each c As Char In str
        sb.AppendFormat("{0:000}", Convert.ToInt32(c))
    Next c
    Return sb.ToString

End Function

用一些 linq 替换注释代码

'For i = 1 To lenText
'    sASC = sASC & CStr(Asc(Mid$(sText, i, 1)))
'Next i

sASC = sText.
    Select(Function(t) String.Format("{0:0000}", Asc(t))).
    Aggregate(Function(t1, t2) t1 & "," & t2)

它将重新select你的数字,格式化为总是有[至少] 4 个字符,任何前导额外空格为 0。然后它将结果放在一起(聚合),由一个",".

input: qussai

output: 0113,0117,0115,0115,0097,0105

根据您评论中的其他信息判断,字符串并不是您代码中此时的最佳载体。你有来自 Asc() 的数值,然后你将进行提高到 5 次方的数值运算。最好使用 Asc 值进行数学运算,然后创建一个字符串。这样做以获得预期的结果:

sASC = sText.
    Select(Function(t) Math.Pow(Asc(t), 5).ToString()).
    Aggregate(Function(t1, t2) t1 & t2)

input: qussai

output: 18424351793219244803572011357187520113571875858734025712762815625