コード:
int TopAttuale = Int32.Parse("1579.998779296875");
それは言う
System.FormatException:入力文字列が正しい形式ではありませんでした。
しかし、それは私が持っているものです。その文字列をINTに変換するにはどうすればよいですか(つまり、1579、コンマは気にしません)?
コード:
int TopAttuale = Int32.Parse("1579.998779296875");
それは言う
System.FormatException:入力文字列が正しい形式ではありませんでした。
しかし、それは私が持っているものです。その文字列をINTに変換するにはどうすればよいですか(つまり、1579、コンマは気にしません)?
行う:
(int) double.Parse(inputstring)
最初に解析してから、decimal
にキャストする必要があるようですint
。(実際に10進数の入力があるのdecimal
ではなく、使用します。ソースデータをより正確に表現します。ただし、キャストするときには違いはありません。)double
decimal
// Parse using the invariant culture so that it always uses "." as the
// decimal separator
decimal parsed = decimal.Parse(text, CultureInfo.InvariantCulture);
int value = (int) parsed;
または、小数点があるかどうかを確認し、小数点がある場合は、その後のすべてをトリミングしてから、結果を解析します。
decimal.ToInt32(decimal.Parse("1579.998779296875"))
浮動小数点値を整数に変換しようとしていますが、これは直接不可能です。ただし、最初に文字列をdoubleに変換してから、doubleを整数に変換するよりも実行する必要がある場合。
string str = "1579.998779296875";
double val = Convert.ToDouble(str);
int val1 = Convert.ToInt32(val);
Decimal.Parse
メソッドを試して、次の場所にキャストしint
ます。
int TopAttuale = (int) Decimal.Parse(inputString)
または使用Decimal.TryParse
方法:
string value;
decimal number;
value = "1579.998779296875";
if (Decimal.TryParse(value, out number))
int result = (int) number;
else
Console.WriteLine("Unable to parse '{0}'.", value);
これは、小数点以下のすべてを単に無視します。文字列が数字ではなかったかどうかはわかりませんので、注意してください。
public int IntFromString(string str)
{
int result = 0;
foreach (char c in str)
{
if (!char.IsDigit(c))
{
break;
}
result = result * 10 + c - '0';
}
return result;
}
このコードを試してください。
decimal a= decimal.Parse("1579.998779296875");
a=Math.Floor(a);
int b=(int)a;
Console.WriteLine(b);
1579と表示されます。必要に応じて。