asp.net 如何在C#中将十进制数从字符串解析为整数?

moiiocjp  于 12个月前  发布在  .NET
关注(0)|答案(2)|浏览(107)

我想将十进制字符串转换为整数,但我一直得到以下错误:
System. exe异常:输入字符串的格式不正确。

var myString = "18.7";
var myInteger = Int32.Parse(myString); //flaging an error here
Console.WriteLine(myInteger) //desired result = 18

字符串

osh3o9ms

osh3o9ms1#

您应该将其解析为double类型并将其转换为整数

var myString = "18.7";
var myInteger = (int)Convert.ToDouble(myString); 
Console.WriteLine(myInteger) //desired result = 18

字符串
转换将是这样的

  • “18.7”(字符串值)到18.7(双精度值)
  • 18.7(双精度类型)到18(整数类型-小数部分被删除)

在某些情况下,你的字符串可能像18,7一样,它依赖于CultureInfo进行转换。这使得18.7不可格式化。
至于文化独立性,你可以像下面这样转换它

var myString = "18.7";
var myInteger = (int)Convert.ToDouble(myString,CultureInfo.InvariantCulture.NumberFormat); 
Console.WriteLine(myInteger) //desired result = 18

tjrkku2a

tjrkku2a2#

你得到错误的原因是因为字符串“18.7”不是一个有效的整数格式。整数基本上是整数。所以要将十进制字符串转换为整数,你可以使用Math.Floor()Math.Ceiling()方法,它们分别截断或舍入十进制值。
举例来说:
Math.Floor(Convert.ToDouble(“18.7”)); //will return 18Math.Ceiling(Convert.ToDouble(“18.7”)); //will return 19

相关问题