Thursday 23 November 2017

c# - Deduce all characters behind decimal number, with leading 0's

itemprop="text">

If I have an input string,
input has Three or more decimals I want the string to be handled by
a separate if-loop.




I've created the following console
program for this purpose, where the if-loop is entered if (the
first constraint) there is a decimal point, . in the string and
(the second constraint) if the amount of decimals are Three or
more.



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();
}

}
}


This
yields the expected result, i.e.




(1)
prints 0.065,



(2)
prints 1,



(3) prints
.065



and (4) prints
3.



My issue is that
when I remove the hard coded string value, input = "0.065" and
replace it with




input =
Row["Price"].ToString();


where
Row["Price"].ToString(); is a value from a XML file, which also
has value 0.065 I get the following prints from
console:



(1) yields
0.065



(2) yields
-1 (should be 1 as there is a .
present)




(3) yields
0.065 (should be .065)



and (4) is not printed, because the
if constraints are not
met.



Does anyone have any idea why this is? I am
new to C#, but I figure that since input is of type
string in both cases, there shouldn't be any difference?
Especially as I apply ToString() to my new string
input
?


itemprop="text">
class="normal">Answer



Replace
the , with an . in that string when
you do input =
Row["Price"].ToString();
.



Replace
function is input = Row["Price"].ToString().Replace(",",
".");


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...