﻿# V6094\. The expression was implicitly cast from integer type to real type\. Consider utilizing an explicit type cast to avoid the loss of a fractional part\.

В выражении присутствует операция деления целочисленных типов данных\. Полученное значение неявно преобразуется к типу с плавающей точкой\. Обнаружив такую ситуацию, анализатор предупреждает о наличии потенциальной ошибки, которая может привести к вычислению неточного результата\.

Рассмотрим пример:

```cpp
int totalTime = 1700;
int operationNum = 900;
double averageTime = totalTime / operationNum;
```

Программист может ожидать, что переменная 'averageTime' будет иметь значение '1\.888\(8\)', однако при выполнении программы будет получен результат равный '1\.0'\. Это происходит потому, что операция деления выполняется с целочисленными типами и только затем приводится к типу с плавающей точкой\.

Как и в предыдущем случае, ошибку можно исправить 2 способами\.

Первый способ \- изменить типы переменных:

```cpp
double totalTime = 1700;
double operationNum = 900;
double averageTime = totalTime / operationNum;
```

Второй способ \- использовать явное приведение типов\.

```cpp
int totalTime = 1700;
int operationNum = 900;
double averageTime = (double)(totalTime) / operationNum;
```