Умножение с процентами

itehno
Offline
Зарегистрирован: 18.04.2015

Доброго дня

Есть у меня условие, где я получаю число типа float

Мне необходимо потом это число использовать в виде процентов в умножении

Вот на чем я остановился:

float v1 = 0;             
int32_t v2 = 31950;  
int32_t v3 = 31750;   
int32_t v4 = 31750; 
int32_t v5 = 31800; 

    v1 = (((float)v2 - (float)v3) / (float)v2) * 100;
    v4 = v5 + v5 * v1;

Где v1 у меня число с плавающей точкой

Если бы я делал в Exel, то выражение выглядело бы так:

31800 + 31800 * 0,62% 

Итог: 31949 - если немного округлить

Никак не пойму, как это выразить в ардуинке. 

 

itehno
Offline
Зарегистрирован: 18.04.2015

Ошибся с итоговым числом: не 31949, а 31999

b707
Offline
Зарегистрирован: 26.05.2017

а вы сами-то не видите, что это совсем разные выражения?

Вот тут знак "плюс" и множитель 0.62

itehno пишет:

31800 + 31800 * 0,62%

а тут - "минус" и множитель 100

v1 = (((float)v2 - (float)v3) / (float)v2) * 100;

 

не понятно, в чем вопрос - что мешает написать как в экселе?

itehno
Offline
Зарегистрирован: 18.04.2015

Все, решил. Видимо сказывается конец рабочего дня )))

Делим 31800 на 100 и умножаем на 0,62 из переменной v1

И потом прибавляем к 31800

Итого:

31800 + ((31800 / 100) * v1) = 31999,06

BOOM
BOOM аватар
Онлайн
Зарегистрирован: 14.11.2018

Капец, проценты считаем на дуне с помощью. 

mykaida
mykaida аватар
Онлайн
Зарегистрирован: 12.07.2018

Не, гля, проценты это круто, бро! Это что-то там от 100, а если получается больше - то это супермен!