它应该是一个简单的代码:
string qty = "211.0000";
Console.WriteLine(Int32.Parse(qty));
Run Code Online (Sandbox Code Playgroud)
我尝试使用Convert.ToInt32or Int32.Parse,但它们都抛出错误:错误:用户代码中的异常:
System.FormatException:输入字符串的格式不正确。
在 System.Number.StringToNumber(String str、NumberStyles options、NumberBuffer& number、NumberFormatInfo info、Boolean parseDecimal)
在 System.Number.ParseInt32(String s、NumberStyles style、NumberFormatInfo info) 在 Rextester.Program.Main(String[] args)
我在定义字符串并给出值时是否犯了任何错误?我尝试过使用stringorString来定义变量。如果我使用的话它会起作用Console.WriteLine(Convert.ToInt32("211.0000"))。
顺便说一句,我正在http://rextester.com/进行测试
当使用浮点值(具有明确的小数分隔符.)时,您应该使用decimalor double:
using System.Globalization;
...
string qty = "211.0000";
// be careful: different cultures have different decimal separators
decimal result = decimal.Parse(qty, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
或者
double result = double.Parse(qty, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
获得浮点表示后,您可以将其四舍五入为整数
int value = (int) (result > 0 ? result + 0.5 : result - 0.5);
Run Code Online (Sandbox Code Playgroud)
或者
int value = (int) (Math.Round(result));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |