převod čísla na textový řetězec   zodpovězená otázka

VB.NET

mám dotaz jak by se nejjednodušeji převedlo například číslo od 1 do 100 na textový řetězec "001" až "100"

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Možnost je například zjistit si pomocí funkce Len kolik čísel má žetězec a podle toho doplnit nuly.

Třeba takto:

Sub cisloNaString()

        Dim cislo As String = InputBox("zadejte číslo od 1 to 100")
        Dim vysledek As String = 0



       
        If Len(cislo) = 1 Then
            vysledek = "00" & cislo
        ElseIf Len(cislo) = 2 Then
            vysledek = "0" & cislo
        Else
            vysledek = cislo
        End If

        MsgBox(vysledek)

End Sub

Možností je určitě více. A musíte si samozřejmě ošetřit případy kdy uživatel nic nezadá atd.:)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
For index As Integer = 1 To 100
  'Číslo do tří míst zleva zarovná nulami
  Console.WriteLine(index.ToString("000"))
Next

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Stačí použít funkci Right z Microsoft.VisualBasic, která ořízne vložený řetězec zprava na daný počet znaků:

   Public Function Cislo(ByVal vstup As Integer) As String
      Return Microsoft.VisualBasic.Right("000" + vstup.ToString, 3)
   End Function

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Toto bych rozhodně nedoporučoval, protože vzhledem k tomu, že se nejedná o formátovací funkci jako je ToString(ByVal format As String) to v případě čísel větších než 999 a rovněž čísel záporných vrací nesmysly...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Máte pravdu, v tomto případě lze funkci trochu upravit...

Zde je funkce:

   Public Function Cislo(ByVal vstup As Integer) As String
      If vstup.ToString.Length > 3 Then
         If vstup < 0 Then Return "-" + vstup.ToString Else Return vstup.ToString
      Else
         If vstup < 0 Then Return "-" + Return Microsoft.VisualBasic.Right("000" + vstup.ToString, 3) Else Return Microsoft.VisualBasic.Right("000" + vstup.ToString, 3)
      End If
   End Function

Funkce v případě čísla s více než třemi číslicemi vypíše číslo v plné velikosti. Pokud je číslo záporné, zpracuje se úplně stejně, jakoby nebylo, akorát se přidá záporné znaménko, např. -023.

Děkuji za připomínku

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback