я не знаю как так))

Unikolai
Offline
Зарегистрирован: 21.09.2016
float d = h / 10;
  String myString = String(round(d));
  Serial.println(myString);

  int j1 = int(myString[0]);
  int j2 = int(myString[1]);
  int j3 = int(myString[2]);

h =4.21например,выдает 52, 49, а не 4.21, как понимаю все из-за разных систем счисления, делать что с этим?

ptr
Offline
Зарегистрирован: 28.05.2016

52 в десятичной системе исчисления равно 0x34 в шестнадцатиричной системе исчисленя и является кодом символа "4"

Аналогично и 49 является кодом символа "."

Вы же преобразовали число в строку. Вот и считываете потом из этой строки коды символов.

 

Unikolai
Offline
Зарегистрирован: 21.09.2016

ясно, но все же что делать, мне тут писали, что мол так можно 

а3=10*х % 10;

а2=х  %10;

а1=х/10 %10;

но у меня это не работает, мне нужно int разобрать на разряды, то есть int 459, из них получить int 4, int 5 и int 9

ptr
Offline
Зарегистрирован: 28.05.2016

Так Вам же и писали, что надо использовать операцию получения остатка от деления "%" к Вашему числу, а вовсе не к его символьному представлению.

 

Unikolai
Offline
Зарегистрирован: 21.09.2016

нет, нет, я с чсилом работал, не получилось, стал делать так

вот что выдавалось

stray '\340' in program

хотя нет, попробовад сейчас, получилось, тип переменной не объявил, ошибку же он другую выдавал

ptr
Offline
Зарегистрирован: 28.05.2016
float d = h / 10;
  int j1 = d%10;
  int j2 = (d*10)%10;
  int j3 = (d*100)%10;

 

nik182
Offline
Зарегистрирован: 04.05.2015

ptr пишет:

float d = h / 10;
  int j1 = d%10;
  int j2 = (d*10)%10;
  int j3 = (d*100)%10;

 

Это сработает если d меньше единицы. То что я давал было предназначено для чисел в диапазоне 0.1 .. 99.9 , который изначально запрашивал автор топика. Хотя я не понимаю зачем делить на 10, а затем пытаться разделить на цифры, если легче и дешевле изначальный не флоат делить на цифры?

ptr
Offline
Зарегистрирован: 28.05.2016

Ну ТС просил в примере для h =4.21, я ему и написал так.

А уж ход мыслей ТС для меня тоже загадка )

 

Unikolai
Offline
Зарегистрирован: 21.09.2016

спасибо всем)флоат я уже заменил на инт, когда вы мне об этом написали, тут же привел такую циферу ради того, чтобы былояснее

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Unikolai пишет:
а не 4.21, как понимаю все из-за разных систем счисления, делать что с этим?

Изучать!