Pytanie:
Jak podzielić numer na pojedyncze cyfry?
Austinthemighty
2016-08-06 11:02:00 UTC
view on stackexchange narkive permalink

Jak podzielić part1 na 2-3 cyfry i umieścić je w num1 , num2 i num3 ?

  int FMSTATION = 10250; int update_display () {int fm_station = FMSTATION; int part1; int part2; part1 = (FMSTATION / 100); part2 = (FMSTATION% 100); część2 = (część2/10); int num1 =; int num2 =; int num3 =; int num4 = część2; matrix.writeDigitNum (0, num1, false); // pierwszy numer na matrycy lcd.writeDigitNum (1, num2, false); // 2. numer na matrycy lcd.writeDigitNum (3, num3, true); // Trzeci numer na lcd i dodaje „.” matrix.writeDigitNum (4, num4, false); // Czwarty numer na matrycy lcd.writeDisplay ();}  

Przeszukałem sieć od góry do dołu, ale nie mogłem znaleźć odpowiedzi. Ostatecznie to, co powinienem wyświetlić na moim LCD, to 102,5 .

Dwa odpowiedzi:
Majenko
2016-08-06 18:51:09 UTC
view on stackexchange narkive permalink

% 10 zwraca ostatnią cyfrę liczby. Dzielenie przez 10 przesuwa liczbę o jedną cyfrę w prawo.

Więc jeśli masz liczbę 10250 jako liczbę całkowitą, możesz otrzymać każdą liczbę za pomocą:

  10250% 10 = 0 (10250/10)% 10 = 5 (10250/100)% 10 = 2 (10250/1000)% 10 = 0 (10250/10 000)% 10 = 1  

Więc twój kod można zapisać jako:

  num4 = (fm_station / 10)% 10; num3 = (fm_station / 100)% 10; num2 = (fm_station / 1000)% 10; num1 = ( fm_station / 10000)% 10;  

Nie ma potrzeby bawić się zmiennymi „częściowymi”.

Wypróbuję to
Nithin Kurian
2016-08-06 11:37:14 UTC
view on stackexchange narkive permalink

Myślę, że to ci pomoże:

  int FMSTATION = 10250; int update_display () {int fm_station = FMSTATION; int part1; int part2; part1 = (FMSTATION / 100); // 102 part2 = (FMSTATION% 100); // 50 część2 = (część2 / 10); // 5 int num1 = part1 / 100; // 1 int num2 = (part1% 100) / 10; // 0 int num3 = part1% 10; // 2 int num4 = part2; // 5 matrix.writeDigitNum (0, num1, false); // pierwszy numer na matrycy lcd.writeDigitNum (1, num2, false); // druga liczba na matrycy lcd.writeDigitNum (3, num3, true); // Trzeci numer na lcd i dodaje „.” matrix.writeDigitNum (4, num4, false); // 4. numer na matrycy lcd.writeDisplay ();}  
W przypadku wyświetlania `num1` sprawdziłbym również, czy nie jest to` 0` przed wyświetleniem go i wyczyściłby cyfrę, jeśli tak jest, aby `95.6` nie zostało wyświetlone jako` 095.6`.
Ok, spróbuję
Dzięki temu zadziałało, również spróbuję zaimplementować cyfrę wyraźną


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...