gpt4 book ai didi

c# - 如何将文字金额转换为数字

转载 作者:行者123 更新时间:2023-12-03 04:16:32 25 4
gpt4 key购买 nike

我正在寻找一个 C# 函数,它将单词中的金额转换为相对数字。

例如,125 应转换为 1025。

感谢任何人的早期帮助。

最佳答案

已经测试它可以处理包含多个数字的字符串。

用法:findNumbers("成本为五十二万九千三百二十六美元二十三美分");

输出:“成本为 529326 美元 23 美分”

    string numstring = "zero=0;one=1;two=2;three=3;four=4;five=5;six=6;seven=7;eight=8;nine=9;ten=10;eleven=11;twelve=12;thirteen=13;fourteen=14;fifteen=15;sixteen=16;seventeen=17;eighteen=18;nineteen=19;twenty=20;thirty=30;fourty=40;fifty=50;sixty=60;seventy=70;eighty=80;ninety=90;hundred=100;thousand=1000;";
Dictionary<string, string> theNumbers = numstring.TrimEnd(';').Split(';').ToDictionary(item => item.Split('=')[0], item => item.Split('=')[1]);
private string findNumbers(string input)
{
string tmp = "", tmpout = "", output = "";
input = input.Replace("hundred and", "hundred");
foreach (string word in input.Split(' '))
{
if (theNumbers.TryGetValue(word, out tmp))
{
if (tmpout != "") tmpout += " ";
tmpout += tmp;
} else
{
if (tmpout != "") output += " " + addNumbers(tmpout);
tmpout = "";
if (output != "") output += " ";
output += word;
}
}
if (tmpout != "") {
tmpout = addNumbers(tmpout);
if (output != "") output += " ";
output += tmpout;
}
return output;
}
private string addNumbers(string input)
{
int output = 0;
int output2 = 0;
foreach (string num in input.Split(' '))
{
if (output > 999)
{
output2 = output;
output = 0;
}
if (Int32.Parse(num) > 99)
{
output = output * Int32.Parse(num);
} else
{
output = output + Int32.Parse(num);
}
}
return (output + output2).ToString();
}

关于c# - 如何将文字金额转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225967/

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