Получение значения с плавающей точкой из целых чисел - PullRequest
5 голосов
/ 18 апреля 2009

Как я могу получить число с плавающей запятой или реальное значение из целочисленного деления? Например:

double result = 30/233;

дает ноль. Я хотел бы получить значение с десятичными разрядами.

Как мне тогда отформатировать, чтобы при использовании со строкой отображались только два десятичных знака?

Ответы [ 3 ]

9 голосов
/ 18 апреля 2009

Вы можете просто добавить десятичную к числителю или знаменателю:

double result = 30.0 / 233;
double result = 30 / 233.0;

Также можно набрать любое из двух чисел.

Что касается второй части вопроса, если вы используете строки формата printf, вы можете сделать что-то вроде этого:

sprintf(str, "result = %.2f", result);

В сущности, ".2" представляет количество цифр для вывода после десятичной точки.

1 голос
/ 19 апреля 2009

Если у вас есть целое число (не целочисленная константа):

int i = 20;
int j = 220;
double d = i/(double)j;
0 голосов
/ 22 августа 2013

Это самый простой способ сделать то, чего вы пытаетесь достичь, я думаю ..

double result = 30/233.0f;

для разработки под iOS (iPhone / iPad / etc) лучше использовать тип с плавающей точкой.

float result = 30/233.0f;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...