C# 字符串转浮点数代码解析:Else 代码块详解
这段代码是一个字符串转换为浮点数的过程。它首先判断字符串中是否有小数点,如果有则分离出整数部分和小数部分。然后将整数部分和小数部分拼接成一个浮点数返回。如果字符串中存在非数字字符,则会提示数据存在错误并返回-1。
代码解析:
else
{
bool hasDot = false;
int decimalPartIndex = 0;
string intPart = "";
string decimalPart = "";
double num = 0;
if ((str[j] >= '0' && str[j] <= '9') || str[j] == '.')
{
if (str[j] == '.')
{
if (!hasDot)
{
hasDot = true;
decimalPartIndex = j;
continue;
}
else
{
MessageBox.Show("数据存在错误");
return -1;
}
}
else
{
if (hasDot)
decimalPart += str[j];
else
intPart += str[j];
}
}
else
{
i = j - 1;
break;
}
}
代码功能:
- 判断小数点: 使用
hasDot变量记录字符串中是否已经出现小数点,并使用decimalPartIndex记录小数点的位置。 - 分离整数和小数部分: 如果遇到小数点,则将
hasDot设置为true并记录小数点的位置。如果遇到数字,则根据hasDot的值将数字添加到intPart或decimalPart中。 - 拼接浮点数: 将
intPart和decimalPart拼接成一个字符串,并使用double.Parse方法将其转换为浮点数。 - 错误处理: 如果字符串中存在非数字字符,则会弹出错误提示并返回 -1。
代码示例:
string str = "123.456";
double num = ConvertStringToFloat(str);
Console.WriteLine(num); // 输出:123.456
代码总结:
这段代码展示了如何将字符串转换为浮点数,并使用 else 代码块对非数字字符进行处理。它使用了一些简单的逻辑判断和循环语句,使得代码结构清晰易懂。通过学习这段代码,可以帮助我们更好地理解字符串转换和错误处理的机制。
原文地址: https://www.cveoy.top/t/topic/otPd 著作权归作者所有。请勿转载和采集!