Saya memiliki TextBoxD1.Teks
dan saya ingin mengubahnya menjadi sebuah int
untuk menyimpannya dalam database.
Bagaimana saya bisa melakukan ini?
Coba ini:
int x = Int32.Parse(TextBoxD1.Text);
atau lebih baik lagi:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Juga, karena Int32.TryParse
kembali bool
anda dapat menggunakan kembali nilai untuk membuat keputusan tentang hasil parsing upaya:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
Jika anda penasaran, perbedaan antara Mengurai
dan TryParse
adalah yang terbaik menyimpulkan seperti ini:
TryParse lebih suka Mengurai metode, kecuali TryParse tidak membuang pengecualian jika konversi gagal. Menghilangkan perlu menggunakan exception handling untuk menguji untuk FormatException di acara bahwa s adalah tidak valid dan tidak dapat berhasil diurai. - BACA
Convert.ToInt32( TextBoxD1.Text );
Gunakan ini jika anda merasa yakin bahwa isi dari kotak teks yang valid int. Pilihan yang lebih aman adalah
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
Ini akan memberikan anda dengan beberapa nilai default yang dapat anda gunakan. Int32.TryParse
juga mengembalikan nilai boolean yang menunjukkan apakah itu mampu mengurai atau tidak, sehingga anda bahkan dapat menggunakannya sebagai kondisi jika
pernyataan.
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
int myInt = int.Parse(TextBoxD1.Text)
Cara lain akan sama:
bool isConvertible = false;
int myInt = 0;
isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
Perbedaan antara keduanya adalah bahwa yang pertama akan melempar pengecualian jika nilai di textbox dapat't akan dikonversi, sedangkan yang kedua hanya akan mengembalikan false.
Anda perlu untuk mengurai string, dan anda juga perlu untuk memastikan bahwa itu benar-benar dalam format integer.
Cara termudah adalah ini:
int parsedInt = 0;
if (int.TryParse(TextBoxD1.Text, out parsedInt))
{
// Code for if the string was valid
}
else
{
// Code for if the string was invalid
}
Hati-hati ketika menggunakan Convert.ToInt32() pada char!
Itu akan kembali UTF-16 Kode dari karakter!
Jika anda mengakses string hanya di posisi tertentu menggunakan [i]
pengindeksan operator ini akan mengembalikan char
dan bukan string
!
String input = "123678";
int x = Convert.ToInt32(input[4]); // returns 55
int x = Convert.ToInt32(input[4].toString()); // returns 7
int x = 0;
int.TryParse(TextBoxD1.Text, out x);
Yang TryParse kembali pernyataan boolean yang merepresentasikan apakah mengurai telah berhasil atau tidak. Jika itu berhasil, diurai nilai disimpan ke dalam parameter kedua.
Melihat Int32.TryParse (String, Int32) untuk informasi yang lebih rinci.
Sementara sudah ada banyak solusi berikut yang menggambarkan int.Mengurai
, ada's sesuatu yang penting yang hilang dalam semua jawaban. Biasanya, string representasi dari nilai-nilai numerik berbeda dengan budaya. Elemen-elemen dari string numerik seperti simbol mata uang, kelompok (atau ribuan) pemisah, dan pemisah desimal semua bervariasi berdasarkan budaya.
Jika anda ingin membuat cara yang kuat untuk mengurai string ke integer, it's oleh karena itu penting untuk mengambil informasi budaya ke rekening. Jika anda don't, [budaya saat ini pengaturan][1] akan digunakan. Yang mungkin memberikan pengguna cukup kaget-atau bahkan lebih buruk, jika anda're parsing format file. Jika anda hanya ingin inggris parsing, it's terbaik untuk hanya membuat lebih eksplisit, dengan menentukan pengaturan budaya untuk menggunakan:
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
Untuk informasi lebih lanjut, baca di CultureInfo, khususnya [NumberFormatInfo][2] di MSDN.
[1]: https://msdn.microsoft.com/en-us/library/system.threading.thread.currentculture(v=vs. 110).aspx [2]: https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo(v=vs. 110).aspx
Anda dapat menulis sendiri metode ekstensinya
public static class IntegerExtensions
{
public static int ParseInt(this string value, int defaultValue = 0)
{
int parsedValue;
if (int.TryParse(value, out parsedValue))
{
return parsedValue;
}
return defaultValue;
}
public static int? ParseNullableInt(this string value)
{
if (string.IsNullOrEmpty(value))
{
return null;
}
return value.ParseInt();
}
}
Dan di mana pun di kode panggil saja
int myNumber = someString.ParseInt(); // returns value or 0
int age = someString.ParseInt(18); // with default value 18
int? userId = someString.ParseNullableInt(); // returns value or null
Dalam kasus konkret
int yourValue = TextBoxD1.Text.ParseInt();
Seperti yang dijelaskan dalam TryParse dokumentasi, TryParse() mengembalikan nilai boolean yang menunjukkan bahwa yang sah jumlah ditemukan:
bool success = Int32.TryParse(TextBoxD1.Text, out val);
if (success)
{
// put val in database
}
else
{
// handle the case that the string doesn't contain a valid number
}
Konversi dari string
untuk int
dapat dilakukan untuk: int
, Int32
, Int64
dan jenis data lainnya yang mencerminkan integer tipe data dalam .NET
Contoh di bawah ini menunjukkan konversi ini:
Ini menunjukkan (info) data adapter elemen diinisialisasi ke int nilai. Hal yang sama dapat dilakukan secara langsung seperti,
int xxiiqVal = Int32.Parse(strNabcd);
Ex.
string strNii = "";
UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );
[Link untuk melihat demo ini][1].
//May be quite some time ago but I just want throw in some line for any one who may still need it
int intValue;
string strValue = "2021";
try
{
intValue = Convert.ToInt32(strValue);
}
catch
{
//Default Value if conversion fails OR return specified error
// Example
intValue = 2000;
}
Ini akan melakukan
string x=TextBoxD1.Text;
int xi=Convert.ToInt32(x);
Atau anda dapat menggunakan
int xi=Int32.Parse(x);
Merujuk Microsoft Developer Network untuk informasi lebih lanjut
Anda dapat mengkonversi string ke int C# menggunakan:
Fungsi dari convert kelas yaitu Mengkonversi.ToInt16()
, Mengkonversi.ToInt32()
, Mengkonversi.ToInt64()
atau dengan menggunakan Mengurai
dan TryParse
Fungsi. Contoh yang diberikan di sini.
Anda juga dapat menggunakan metode penyuluhan, sehingga akan lebih mudah dibaca (meskipun semua orang sudah digunakan untuk reguler Mengurai fungsi).
public static class StringExtensions
{
/// <summary>
/// Converts a string to int.
/// </summary>
/// <param name="value">The string to convert.</param>
/// <returns>The converted integer.</returns>
public static int ParseToInt32(this string value)
{
return int.Parse(value);
}
/// <summary>
/// Checks whether the value is integer.
/// </summary>
/// <param name="value">The string to check.</param>
/// <param name="result">The out int parameter.</param>
/// <returns>true if the value is an integer; otherwise, false.</returns>
public static bool TryParseToInt32(this string value, out int result)
{
return int.TryParse(value, out result);
}
}
Dan kemudian anda dapat menyebutnya seperti itu:
int num = TextBoxD1.Teks.ParseToInt32();
int bil; jika (TextBoxD1.Teks.TryParseToInt32(keluar num)) { //Parse berhasil, num memiliki nilai terurai. }
Untuk membuatnya lebih dinamis, sehingga anda dapat mengurai itu juga untuk double, float, dll., anda dapat membuat generic ekstensi.
yang dapat anda lakukan seperti di bawah ini tanpa TryParse atau fungsi built-in
static int convertToInt(string a)
{
int x=0;
for (int i = 0; i < a.Length; i++)
{
int temp=a[i] - '0';
if (temp!=0)
{
x += temp * (int)Math.Pow(10, (a.Length - (i+1)));
}
}
return x ;
}