C# 推导十进制数后面的所有字符,前导0';s

C# 推导十进制数后面的所有字符,前导0';s,c#,string,output,C#,String,Output,如果我有一个输入字符串,输入有三个或更多的小数。我希望字符串由一个单独的If循环处理 为此,我创建了以下控制台程序,其中如果(第一个约束)有一个小数点,在字符串中,如果小数点的数量是三个或更多,则输入if循环 using System; namespace Test { class Program { static void Main(string[] args) { string input = "0.065";

如果我有一个输入字符串,输入有三个或更多的小数。我希望字符串由一个单独的
If循环处理

为此,我创建了以下控制台程序,其中如果(第一个约束)有一个小数点,
在字符串中,如果小数点的数量是三个或更多,则输入
if循环

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();
其中
行[“价格”].ToString()
是XML文件中的一个值,它也有值
0.065
我从控制台获得以下打印:

(1) 收益率
0.065

(2) 产生
-1
(应为1,因为存在

(3) 收益率
0.065
(应为
.065

和(4)未打印,因为未满足
if约束


有人知道这是为什么吗?我是C#新手,但我认为既然
input
在这两种情况下都是
string
类型,那么应该没有什么区别吧?尤其是当我将
ToString()
应用到新的
字符串输入时

在执行
input=Row[“Price”]操作时,将该字符串中的
替换为


Replace函数是
input=Row[“Price”].ToString().Replace(“,”,”)

行[“价格”]。ToString();是XML文件中的值
,显然与从XML读取的内容不同。请将读取该值的代码以及
是什么?是否确定没有,而不是一个。在该字符串中,您可以
input=Row[“Price”].ToString()这意味着你的输入不包含“.”字符,即使你认为它包含“.”字符。也许它包含逗号而不是点,或者其他东西-我们无法理解它。只需执行
Console.WriteLine(Row[“Price”].ToString())
并查看您自己。可能您的Row[“Price”]包含一个带有“,”的数值,作为分隔符,而不是“。@k.Lennartz我打印了
输入
,我没有看到
,但看到了
。但是当我做了
input=Row[“Price”].ToString().Replace(“,”)
之后,它就工作了,因为它们看起来非常相似(我的真实打印使用了一个粗体打印的函数,因此
之间的区别更加微妙。有三个人建议了这一点,但既然你是第一个,我相信如果你把你的评论作为回答,我会接受的。