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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…