368 превратить в 3.7

yden
Offline
Зарегистрирован: 30.01.2016

Здравствуйте.

Подскажите пожалуйста. Ардуино нано. Подключен датчик, аналоговый сигнал. Прилетает значение, например 368, мне нужно переменной присвоить эначение 3.7, чтобы далее по мктт передать.

Делаю:

bar = (round((analogRead(A1))/10))/10;

Прилетает 3.

Делаю: 

bar = (round((analogRead(A1))/10));

Прилетает 37.

Где моя ошибка?

благодарю

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

yden, непонятно, чего именно Вы хотите. Число 3.7 - дробное, а Вы во-первых, оперируете только с целыми числами, а во=вторых, используете процедуру round, которая тоже переводит дробные числа в целые. Так какое число Вам нужно?

Если нужно целое 37, то bar = (analogred(A0) + 5) / 10;

yden
Offline
Зарегистрирован: 30.01.2016

andriano пишет:

yden, непонятно, чего именно Вы хотите. Число 3.7 - дробное, а Вы во-первых, оперируете только с целыми числами, а во=вторых, используете процедуру round, которая тоже переводит дробные числа в целые. Так какое число Вам нужно?

Если нужно целое 37, то bar = (analogred(A0) + 5) / 10;

Мне из 368 получить 3,7

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

yden

Может сначала получить инт раунд 368/10 (37), а протом из этого получить флоат 37/10.0 ?

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Rumata пишет:

yden

Может сначала получить инт раунд 368/10 (37), а протом из этого получить флоат 37/10.0 ?

 

Дон Румата! Ты поглядел на дату регистрации пассажира? Ясно, что проблема не в непонимании арифметики, а медицинская? Ну и зачем реагировать, тем более скоро весна и последствия непредсказуемы?

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

wdrakula пишет:

Вы правы, граф, не обратил внимания. Ну, может человек просто за 5 лет еще не дочитал до страницы про типы с плавающей точкой 

yden
Offline
Зарегистрирован: 30.01.2016

wdrakula пишет:

Rumata пишет:

yden

Может сначала получить инт раунд 368/10 (37), а протом из этого получить флоат 37/10.0 ?

 

Дон Румата! Ты поглядел на дату регистрации пассажира? Ясно, что проблема не в непонимании арифметики, а медицинская? Ну и зачем реагировать, тем более скоро весна и последствия непредсказуемы?

Здоровья вам.

sadman41
Offline
Зарегистрирован: 19.10.2016

Человек программировал методом Гугла. Потом понял, что гугл даёт слишком много информации и решил ее анализ перевалить на других людей. Напрягаться же не надо вообще.

yden
Offline
Зарегистрирован: 30.01.2016

sadman41 пишет:
Человек программировал методом Гугла. Потом понял, что гугл даёт слишком много информации и решил ее анализ перевалить на других людей. Напрягаться же не надо вообще.

И вам не болеть.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

yden пишет:

andriano пишет:

yden, непонятно, чего именно Вы хотите. Число 3.7 - дробное, а Вы во-первых, оперируете только с целыми числами, а во=вторых, используете процедуру round, которая тоже переводит дробные числа в целые. Так какое число Вам нужно?

Если нужно целое 37, то bar = (analogred(A0) + 5) / 10;

Мне из 368 получить 3,7

368 - 364.3 = 3.7

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

yden пишет:

Где моя ошибка?

 

не используйте целые, переходите на флоат

float bar = (analogred(A0) + 5) / 100.0;
Serial.print(bar, 1);

напечатает 3.7

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

b707 пишет:

напечатает 3.7

А передаст 3.68

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Rumata пишет:

А передаст

Вот передастов нам тут не надо...

Если правильно принять - то 3.7

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

mykaida пишет:

Вот передастов нам тут не надо...

Если правильно принять - то 3.7

Про передастов погорячился, впредь не повторится 

А вот насчет принять - идея очень даже здравая. Сегодня я вполне собой доволен, да и выходной завтра мне президент устроил. Начну с 4.9, а после баньки обязательно и 43 приму в незначительном пакете 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Rumata пишет:
Начну с 4.9, а после баньки обязательно и 43 приму в незначительном пакете 

Вот это правильно! 4,9 - банька - 12 - 17 - 20(для дам, мужики пропускают) - 42,5±2,5.