Если вы просто хотите получить первое десятичное значение, решение действительно простое.
Вот пояснительный пример:
int leftSideOfDecimalPoint = (int) initialFloatValue; // The cast from float to int keeps only the integer part
int temp = (int) initialFloatValue * 10;
int rightSideOfDecimalPoint = temp % 10;
Скажем, например, у нас есть начальное значение с плавающей точкой 27,8.
- Просто приведя начальное значение с плавающей точкой к int, вы отбрасываете часть дроби и сохраняете только целую часть.
- Умножив начальное значение с плавающей запятой на 10, мы получим результат 278,0, затем, приведя этот результат к int, получим значение 278
- Если мы разделим 278 на 10, мы получим 27,8, из которых остаток равен 8, что является значением в правой части десятичной точки. Таким образом, используйте модуль.
Эту технику можно использовать для получения следующих десятичных знаков, используя, например, 100 вместо 10 и т. Д.
Просто учтите, что если вы используете эту технику в системах реального времени, например, для ее отображения на 7-сегментном дисплее, она может работать некорректно, потому что мы умножаемся на значение с плавающей запятой, где умножение занимает много времени. накладные расходы.