Jawaban:
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
mengembalikan a bool
Anda dapat menggunakan nilai pengembaliannya untuk membuat keputusan tentang hasil upaya penguraian:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
Jika Anda penasaran, perbedaan antara Parse
dan TryParse
yang terbaik disimpulkan seperti ini:
Metode TryParse seperti metode Parse, kecuali metode TryParse tidak memberikan pengecualian jika konversi gagal. Ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk menguji FormatException jika s tidak valid dan tidak dapat diurai dengan sukses. - MSDN
Int64.Parse()
. Jika inputnya bukan int, maka Anda akan mendapatkan eksekusi dan jejak stack dengan Int64.Parse
, atau boolean False
dengan Int64.TryParse()
, jadi Anda akan memerlukan pernyataan if, seperti if (Int32.TryParse(TextBoxD1.Text, out x)) {}
.
Convert.ToInt32( TextBoxD1.Text );
Gunakan ini jika Anda merasa yakin bahwa isi kotak teks itu valid int
. Opsi yang lebih aman adalah
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
Ini akan memberi Anda beberapa nilai default yang dapat Anda gunakan. Int32.TryParse
juga mengembalikan nilai Boolean yang menunjukkan apakah ia dapat menguraikan atau tidak, sehingga Anda bahkan dapat menggunakannya sebagai kondisi if
pernyataan.
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
int.TryParse()
Itu tidak akan melempar jika teksnya bukan angka.
int myInt = int.Parse(TextBoxD1.Text)
Cara lain adalah:
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 dalam kotak teks Anda tidak dapat dikonversi, sedangkan yang kedua hanya akan mengembalikan false.
code
int NumericJL; bool isNum = int.TryParse (nomeeJobBand, out NumericJL); if (isNum) // JL yang retensi dapat dikirimkan ke int lalu lanjutkan untuk perbandingan {if (! (NumericJL> = 6)) {// Nominasikan} // lain {}}
Anda perlu mengurai string, dan Anda juga perlu memastikan bahwa itu benar-benar dalam format bilangan bulat.
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 saat menggunakan Convert.ToInt32 () di char!
Ini akan mengembalikan kode karakter UTF-16 !
Jika Anda mengakses string hanya di posisi tertentu menggunakan [i]
operator pengindeksan, itu akan mengembalikan a char
dan bukan string
!
String input = "123678";
^
|
int indexOfSeven = 4;
int x = Convert.ToInt32(input[indexOfSeven]); // Returns 55
int x = Convert.ToInt32(input[indexOfSeven].toString()); // Returns 7
int x = 0;
int.TryParse(TextBoxD1.Text, out x);
Pernyataan TryParse mengembalikan boolean yang mewakili apakah parse telah berhasil atau tidak. Jika berhasil, nilai yang diuraikan disimpan ke dalam parameter kedua.
Lihat Int32.TryParse Method (String, Int32) untuk informasi lebih detail.
Bersenang senang lah...
int i = 0;
string s = "123";
i =int.Parse(s);
i = Convert.ToInt32(s);
Meskipun sudah ada banyak solusi di sini yang menjelaskan int.Parse
, ada sesuatu yang penting yang hilang dalam semua jawaban. Biasanya, representasi string dari nilai numerik berbeda menurut budaya. Elemen string numerik seperti simbol mata uang, pemisah grup (atau ribuan), dan pemisah desimal semuanya berbeda menurut budaya.
Jika Anda ingin membuat cara yang kuat untuk mengurai string ke integer, karena itu penting untuk mempertimbangkan informasi budaya. Jika tidak, pengaturan budaya saat ini akan digunakan. Itu mungkin memberi pengguna kejutan yang tidak menyenangkan - atau bahkan lebih buruk, jika Anda mem-parsing format file. Jika Anda hanya ingin parsing bahasa Inggris, yang terbaik adalah membuatnya eksplisit, dengan menentukan pengaturan budaya untuk digunakan:
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 di MSDN.
Anda dapat menulis metode ekstensi Anda sendiri
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 dimanapun dalam 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 nyata ini
int yourValue = TextBoxD1.Text.ParseInt();
StringExtensions
bukan IntegerExtensions
, karena metode ekstensi ini bekerja pada string
dan bukan pada int
?
Seperti yang dijelaskan dalam dokumentasi TryParse , TryParse () mengembalikan Boolean yang menunjukkan bahwa nomor yang valid 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
}
Anda bisa menggunakan,
int i = Convert.ToInt32(TextBoxD1.Text);
atau
int i = int.Parse(TextBoxD1.Text);
//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;
}
Anda dapat mengonversi string menjadi int di C # menggunakan:
Fungsi kelas convert yaitu Convert.ToInt16()
, Convert.ToInt32()
, Convert.ToInt64()
atau dengan menggunakan Parse
dan TryParse
fungsi. Contoh diberikan di sini .
Anda juga dapat menggunakan metode ekstensi , sehingga akan lebih mudah dibaca (meskipun semua orang sudah terbiasa dengan fungsi Parse biasa).
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 bisa menyebutnya seperti itu:
Jika Anda yakin bahwa string Anda adalah bilangan bulat, seperti "50".
int num = TextBoxD1.Text.ParseToInt32();
Jika Anda tidak yakin dan ingin mencegah crash.
int num;
if (TextBoxD1.Text.TryParseToInt32(out num))
{
//The parse was successful, the num has the parsed value.
}
Untuk membuatnya lebih dinamis, sehingga Anda dapat menguraikannya juga menjadi dua kali lipat, mengambang, dll., Anda dapat membuat ekstensi generik.
Konversi string
ke int
dapat dilakukan untuk: int
, Int32
, Int64
dan tipe data lain yang mencerminkan jenis data integer di NET
Contoh di bawah ini menunjukkan konversi ini:
Ini menunjukkan (untuk info) elemen adaptor data yang diinisialisasi ke nilai int. Hal yang sama dapat dilakukan secara langsung seperti,
int xxiiqVal = Int32.Parse(strNabcd);
Ex.
string strNii = "";
UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );
Ini akan dilakukan
string x = TextBoxD1.Text;
int xi = Convert.ToInt32(x);
Atau bisa Anda gunakan
int xi = Int32.Parse(x);
Lihat Jaringan Pengembang Microsoft untuk informasi lebih lanjut
Anda dapat melakukannya seperti di bawah ini tanpa fungsi TryParse atau inbuilt:
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;
}
int i = Convert.ToInt32(TextBoxD1.Text);
Anda dapat mengonversi string ke nilai integer dengan bantuan metode parse.
Misalnya:
int val = Int32.parse(stringToBeParsed);
int x = Int32.parse(1234);
Cara saya selalu melakukan ini adalah seperti ini:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace example_string_to_int
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
// This turns the text in text box 1 into a string
int b;
if (!int.TryParse(a, out b))
{
MessageBox.Show("This is not a number");
}
else
{
textBox2.Text = a+" is a number" ;
}
// Then this 'if' statement says if the string is not a number, display an error, else now you will have an integer.
}
}
}
Inilah yang akan saya lakukan.
Jika Anda mencari jalan panjang, cukup buat satu metode Anda:
static int convertToInt(string a)
{
int x = 0;
Char[] charArray = a.ToCharArray();
int j = charArray.Length;
for (int i = 0; i < charArray.Length; i++)
{
j--;
int s = (int)Math.Pow(10, j);
x += ((int)Char.GetNumericValue(charArray[i]) * s);
}
return x;
}
METODE 1
int TheAnswer1 = 0;
bool Success = Int32.TryParse("42", out TheAnswer1);
if (!Success) {
Console.WriteLine("String not Convertable to an Integer");
}
METODE 2
int TheAnswer2 = 0;
try {
TheAnswer2 = Int32.Parse("42");
}
catch {
Console.WriteLine("String not Convertable to an Integer");
}
METODE 3
int TheAnswer3 = 0;
try {
TheAnswer3 = Int32.Parse("42");
}
catch (FormatException) {
Console.WriteLine("String not in the correct format for an Integer");
}
catch (ArgumentNullException) {
Console.WriteLine("String is null");
}
catch (OverflowException) {
Console.WriteLine("String represents a number less than"
+ "MinValue or greater than MaxValue");
}
Kode ini berfungsi untuk saya di Visual Studio 2010:
int someValue = Convert.ToInt32(TextBoxD1.Text);
Ini bekerja untuk saya:
using System;
namespace numberConvert
{
class Program
{
static void Main(string[] args)
{
string numberAsString = "8";
int numberAsInt = int.Parse(numberAsString);
}
}
}
Anda dapat mencoba yang berikut ini. Ini akan bekerja:
int x = Convert.ToInt32(TextBoxD1.Text);
Nilai string dalam variabel TextBoxD1.Text akan dikonversi menjadi Int32 dan akan disimpan dalam x.
Di C # v.7 Anda bisa menggunakan parameter inline out, tanpa deklarasi variabel tambahan:
int.TryParse(TextBoxD1.Text, out int x);
out
parameter tidak disarankan di C # sekarang?
Ini dapat membantu Anda; D
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
float Stukprijs;
float Aantal;
private void label2_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("In de eersre textbox staat een geldbedrag." + Environment.NewLine + "In de tweede textbox staat een aantal." + Environment.NewLine + "Bereken wat er moetworden betaald." + Environment.NewLine + "Je krijgt 15% korting over het bedrag BOVEN de 100." + Environment.NewLine + "Als de korting meer dan 10 euri is," + Environment.NewLine + "wordt de korting textbox lichtgroen");
}
private void button1_Click(object sender, EventArgs e)
{
errorProvider1.Clear();
errorProvider2.Clear();
if (float.TryParse(textBox1.Text, out Stukprijs))
{
if (float.TryParse(textBox2.Text, out Aantal))
{
float Totaal = Stukprijs * Aantal;
string Output = Totaal.ToString();
textBox3.Text = Output;
if (Totaal >= 100)
{
float korting = Totaal - 100;
float korting2 = korting / 100 * 15;
string Output2 = korting2.ToString();
textBox4.Text = Output2;
if (korting2 >= 10)
{
textBox4.BackColor = Color.LightGreen;
}
else
{
textBox4.BackColor = SystemColors.Control;
}
}
else
{
textBox4.Text = "0";
textBox4.BackColor = SystemColors.Control;
}
}
else
{
errorProvider2.SetError(textBox2, "Aantal plz!");
}
}
else
{
errorProvider1.SetError(textBox1, "Bedrag plz!");
if (float.TryParse(textBox2.Text, out Aantal))
{
}
else
{
errorProvider2.SetError(textBox2, "Aantal plz!");
}
}
}
private void BTNwissel_Click(object sender, EventArgs e)
{
//LL, LU, LR, LD.
Color c = LL.BackColor;
LL.BackColor = LU.BackColor;
LU.BackColor = LR.BackColor;
LR.BackColor = LD.BackColor;
LD.BackColor = c;
}
private void button3_Click(object sender, EventArgs e)
{
MessageBox.Show("zorg dat de kleuren linksom wisselen als je op de knop drukt.");
}
}
}