gpt4 book ai didi

c# - 在 c#.net 中将多变量从字符串转换为十进制在 asp.net 中抛出类型为 'System.FormatException' 的异常

转载 作者:行者123 更新时间:2023-12-05 05:58:50 24 4
gpt4 key购买 nike

我有 2 个或可能超过 2 个字符串变量,如下所示

string a = csvalue[7].Replace(" ", ""); //a="‏120641"
string b = csvalue[9].Replace(" ", "") ;//b="‏"221707‏‏‏‏
decimal result = Convert.ToDecimal(a) + Convert.ToDecimal(b)

但它有异常:“抛出了一个‘System.FormatException’类型的异常”

我试试

       enter code here 
string one = "‏120641‏‏‏‏";
string two = "‏221707‏‏‏‏";
string three = "123548";

Double iOne = 0;
Double iTwo = 0;
Double ithree = 0;

Double.TryParse(one, out iOne);
Double.TryParse(two, out iTwo);
Double.TryParse(three, out ithree);

它对 iOne、iTwo 起作用请帮助我

最佳答案

有些(不可见的)unicode 字符不是数字,因此无法解析。例如,您可以使用 Linq 和 char.IsDigit 删除它们:

using System;
using System.Linq;

public class Program
{
public static void Main()
{
string one = "‏120641‏‏‏‏";
string two = "‏221707‏‏‏‏";
string three = "123548";
one = new string(one.Where(char.IsDigit).ToArray());
two = new string(two.Where(char.IsDigit).ToArray());
three = new string(three.Where(char.IsDigit).ToArray());

Double iOne = 0;
Double iTwo = 0;
Double ithree = 0;

Double.TryParse(one, out iOne);
Double.TryParse(two, out iTwo);
Double.TryParse(three, out ithree);
Console.WriteLine(iOne);
Console.WriteLine(iTwo);
Console.WriteLine(ithree);
}
}

.Net Fiddle

关于c# - 在 c#.net 中将多变量从字符串转换为十进制在 asp.net 中抛出类型为 'System.FormatException' 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68345831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com