How do I insert decimal point into string?
int attrval = Convert.ToInt32("000504");
decimal val1 = (attrval / 100);
string val2 = String.Format("{0:.00}", attrval / 100);
val1 = 5
need 5.04
val2 = 5.00
need 5.04
How do I insert decimal point into string?
int attrval = Convert.ToInt32("000504");
decimal val1 = (attrval / 100);
string val2 = String.Format("{0:.00}", attrval / 100);
val1 = 5
need 5.04
val2 = 5.00
need 5.04
You have an issue with integer division in the line
decimal val1 = (attrval / 100);
Since both attrval
and 100
are of type int
the result is int
as well: 5
. This line should be
decimal val1 = (attrval / 100m);
please, note m
suffix: here we divide int
by decimal
(100m
) and have a desired decimal
result. Same for val2
:
string val2 = String.Format("{0:.00}", attrval / 100m);
Division of two integer numbers return integer value as a result. This division rounds resultant value towards zero, that is why you are getting val2 = 5
instead of 5.04
.
If you want result to be in decimal
type, convert at-least one value either numerator or denominator to the decimal
.
decimal val1 = (attrval / (decimal)100); //5.04
or
decimal val1 = (attrval / 100m); //5.04
Now convert it into string,
string val2 = String.Format("{0:.00}", var1); //"5.04"