я не знаю как так))
- Войдите на сайт для отправки комментариев
Втр, 25/10/2016 - 13:31
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, как понимаю все из-за разных систем счисления, делать что с этим?
52 в десятичной системе исчисления равно 0x34 в шестнадцатиричной системе исчисленя и является кодом символа "4"
Аналогично и 49 является кодом символа "."
Вы же преобразовали число в строку. Вот и считываете потом из этой строки коды символов.
ясно, но все же что делать, мне тут писали, что мол так можно
но у меня это не работает, мне нужно int разобрать на разряды, то есть int 459, из них получить int 4, int 5 и int 9
Так Вам же и писали, что надо использовать операцию получения остатка от деления "%" к Вашему числу, а вовсе не к его символьному представлению.
нет, нет, я с чсилом работал, не получилось, стал делать так
вот что выдавалось
stray '\340' in program
хотя нет, попробовад сейчас, получилось, тип переменной не объявил, ошибку же он другую выдавал
Это сработает если d меньше единицы. То что я давал было предназначено для чисел в диапазоне 0.1 .. 99.9 , который изначально запрашивал автор топика. Хотя я не понимаю зачем делить на 10, а затем пытаться разделить на цифры, если легче и дешевле изначальный не флоат делить на цифры?
Ну ТС просил в примере для h =4.21, я ему и написал так.
А уж ход мыслей ТС для меня тоже загадка )
спасибо всем)флоат я уже заменил на инт, когда вы мне об этом написали, тут же привел такую циферу ради того, чтобы былояснее
Изучать!