Answers:
尝试这个:
int x = Int32.Parse(TextBoxD1.Text);
或更好:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
另外,由于Int32.TryParse
返回a,因此bool
您可以使用其返回值来决定解析尝试的结果:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
如果您很好奇,则最好将Parse
和之间的区别TryParse
总结如下:
TryParse方法类似于Parse方法,但是如果转换失败,TryParse方法不会引发异常。如果s无效且无法成功解析,则无需使用异常处理来测试FormatException。- MSDN
Int64.Parse()
。如果输入非INT,那么你会得到一个execption和堆栈跟踪Int64.Parse
,或布尔False
用Int64.TryParse()
,所以你需要一个if语句,像if (Int32.TryParse(TextBoxD1.Text, out x)) {}
。
Convert.ToInt32( TextBoxD1.Text );
如果您确信文本框的内容是有效的,请使用此选项int
。一个更安全的选择是
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
这将为您提供一些您可以使用的默认值。Int32.TryParse
还返回一个布尔值,指示它是否能够解析,因此您甚至可以将其用作if
语句的条件。
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
int myInt = int.Parse(TextBoxD1.Text)
另一种方法是:
bool isConvertible = false;
int myInt = 0;
isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
两者之间的区别在于,如果无法转换文本框中的值,则第一个将引发异常,而第二个将仅返回false。
code
int NumericJL; bool isNum = int.TryParse(nomeeJobBand,out NumericJL); 如果(isNum)//撤消的JL能够声明为int,然后继续进行比较{if(!(NumericJL> = 6)){//提名} // else {}}
int x = 0;
int.TryParse(TextBoxD1.Text, out x);
TryParse语句返回一个布尔值,表示解析是否成功。如果成功,则将解析后的值存储到第二个参数中。
有关更多详细信息,请参见Int32.TryParse方法(字符串,Int32)。
好好享受...
int i = 0;
string s = "123";
i =int.Parse(s);
i = Convert.ToInt32(s);
虽然这里已经有很多解决方案可以描述 int.Parse
,但是所有答案中都缺少一些重要的内容。通常,数值的字符串表示形式因文化而异。数字字符串的元素(例如货币符号,组(或千)分隔符和十进制分隔符)均会因区域性而异。
如果您想创建一种健壮的方法来将字符串解析为整数,那么考虑区域性信息就很重要。否则,将使用当前的区域性设置。如果您正在解析文件格式,这可能会给用户带来令人讨厌的惊喜-甚至更糟。如果您只想英语解析,那么最好通过指定要使用的区域性设置来使其简单明了:
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
有关更多信息,请阅读CultureInfo,尤其是MSDN 上的NumberFormatInfo。
您可以编写自己的扩展方法
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();
}
}
在代码中的任何地方都可以调用
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
在这种具体情况下
int yourValue = TextBoxD1.Text.ParseInt();
StringExtensions
代替IntegerExtensions
,因为这些扩展方法作用于string
不上int
?
如TryParse文档中所述,TryParse()返回一个布尔值,该布尔值指示找到了一个有效数字:
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
}
您可以使用
int i = Convert.ToInt32(TextBoxD1.Text);
要么
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;
}
您可以使用以下命令在C#中将字符串转换为int:
转换类的功能,即Convert.ToInt16()
,Convert.ToInt32()
,Convert.ToInt64()
或使用Parse
和TryParse
功能。此处给出示例。
您还可以使用扩展方法,因此它更具可读性(尽管每个人都已经习惯了常规的Parse函数)。
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);
}
}
然后您可以这样称呼:
如果您确定您的字符串是整数,例如“ 50”。
int num = TextBoxD1.Text.ParseToInt32();
如果您不确定并要防止崩溃。
int num;
if (TextBoxD1.Text.TryParseToInt32(out num))
{
//The parse was successful, the num has the parsed value.
}
为了使其更具动态性,因此还可以将其解析为double,float等,可以进行通用扩展。
这会做
string x = TextBoxD1.Text;
int xi = Convert.ToInt32(x);
或者你可以使用
int xi = Int32.Parse(x);
您可以在没有TryParse或内置函数的情况下进行以下操作:
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;
}
您可以借助parse方法将字符串转换为整数值。
例如:
int val = Int32.parse(stringToBeParsed);
int x = Int32.parse(1234);
我一直这样做的方式是这样的:
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.
}
}
}
这就是我要做的。
方法1
int TheAnswer1 = 0;
bool Success = Int32.TryParse("42", out TheAnswer1);
if (!Success) {
Console.WriteLine("String not Convertable to an Integer");
}
方法2
int TheAnswer2 = 0;
try {
TheAnswer2 = Int32.Parse("42");
}
catch {
Console.WriteLine("String not Convertable to an Integer");
}
方法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");
}
这段代码在Visual Studio 2010中对我有用:
int someValue = Convert.ToInt32(TextBoxD1.Text);
这对我有用:
using System;
namespace numberConvert
{
class Program
{
static void Main(string[] args)
{
string numberAsString = "8";
int numberAsInt = int.Parse(numberAsString);
}
}
}
您可以尝试以下方法。它将起作用:
int x = Convert.ToInt32(TextBoxD1.Text);
变量TextBoxD1.Text中的字符串值将转换为Int32,并将存储在x中。
在C#v.7中,您可以使用内联输出参数,而无需其他变量声明:
int.TryParse(TextBoxD1.Text, out int x);
out
现在不鼓励在C#中使用参数吗?
这可能对您有帮助; 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.");
}
}
}