如果我有输入字符串, input 有三个或更多小数,我希望字符串由单独的if-loop
处理。
我已经为此创建了以下控制台程序,其中输入if-loop
如果(第一个约束)有一个小数点,.
在字符串中(第二个)约束)如果小数位数是三或更多。
using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string input = "0.065";
string output;
Console.WriteLine(input.ToString()); // (1)
Console.WriteLine(input.ToString().IndexOf(".")); // (2)
Console.WriteLine(input.ToString().Substring(input.ToString().IndexOf("."))); // (3)
if (Convert.ToInt32(input.IndexOf('.')) != -1 &&
Convert.ToInt32(input.Substring(input.IndexOf('.') + 1).Length) >= 3)
{
output = input.Substring(input.IndexOf('.') + 1);
Console.WriteLine(Convert.ToInt32(output));
}
Console.ReadLine();
}
}
}
这产生预期结果,即
(1)打印0.065
,
(2)打印1
,
(3)打印.065
和(4)打印3
。
我的问题是,当我删除硬编码字符串值input = "0.065"
并将其替换为
input = Row["Price"].ToString();
其中Row["Price"].ToString();
是XML文件中的值,其值也为0.065
我从控制台获得以下打印:
(1)收益率0.065
(2)收益率-1
(由于存在.
,因此应为1)
(3)收益率0.065
(应为.065
)
和(4)未打印,因为未满足if constraints
。
有谁知道为什么会这样?我是C#的新手,但我认为,由于input
在两种情况下属于string
类型,所以不应该有任何区别吗?特别是当我将ToString()
应用于我的新string input
时?
答案 0 :(得分:1)
执行,
后,将.
替换为该字符串中的input = Row["Price"].ToString();
。
替换功能为input = Row["Price"].ToString().Replace(",", ".");