Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# get digits from float variable

I have a float variable and would like to get only the part after the comma, so if I have 3.14. I would like to get 14 as an integer. How can I do that?

like image 502
Karsten Avatar asked Jun 24 '09 20:06

Karsten


1 Answers

You can subtract the integer portion from the value itself to retrieve the fractional part.

float x = 3.14
float fractionalPortion = x - Math.Truncate(x);

You can then multiply it to get the fractional part represented as an integer at whatever precision you'd like.

Mapping the fractional portion to an integer has some challenges - many floating point numbers cannot be represented as a base-10 integer, and thus may require more digits to represent than an integer can support.

Also, what of the case of numbers like 3.1 and 3.01? Mapping directly to an integer would both result in 1.

like image 131
Michael Avatar answered Oct 19 '22 23:10

Michael