Если вы хотите разделить два целых числа и вывести дробный результат , тогда делайте это, как если бы вы делили вручную в начальной школе.Первоначальное деление даст вам целую часть результата, затем просто несколько раз умножьте оставшуюся часть на 10 и разделите на делитель до нуля или пока вы не достигнете желаемой точности, чтобы получить дробь
. Взять пример32/5
выше
Целая часть:
32/5 = 6 → Print out "6."
Дробная часть:
Remainder: 2, multiply it by 10 → 2*10 = 20
20/5 = 4 → Print out "4"
Remainder: 0, stop here
Более сложные деления могут быть выполнены, как описано выше, просто умножьте остаток на 10 после каждого шага.Если результат бесконечен, остановитесь, когда получите достаточную точность.
Другой пример: 25/11 = 2.27272727 ...
25/11 = 2 R 3 → 2.
3*10/11 = 2 R 8 → 2
8*10/11 = 7 R 3 → 7
3*10/11 = 2 R 8 → 2
8*10/11 = 7 R 3 → 7
and so on...
Если вы используете значения с плавающей точкой и выполняете плавающуюделение точки с помощью FDIV, тогда есть множество способов преобразовать число с плавающей точкой в строку, но получить правильно округленный результат чрезвычайно сложно, поэтому лучше просто использовать библиотеки, созданные для этой цели.
Однако для очень простая демонстрация , затем снова можно использовать вышеуказанный метод:
- Разбить целую часть результата и вывести ее, затем
.
- Умножитьцелая часть на 10, целая часть будет следующей дробной цифрой
- Удалите целую часть и повторяйте вышеуказанный шаг, пока не достигнете желаемой точности
Грубый примерэто, игнорируя ошибки из-за двоичных свойств с плавающей точкой
11.157
Int part: 11 → print 11.
Fractional part:
0.157*10 = 1.57 → print 1
0.57*10 = 5.7 → print 5
0.7*10 = 7 → print 7
Более подробную информацию можно найти в Превратить float в строку