To da, że kod będzie bardziej czytelny. Takie sklejanie stringów jak zrobiłeś jest trudniejsze do analizy. Poza tym stosując parametry zapytanie jest odporne na SQL Injection Link. Plus: nie musisz się przejmować zapisem typów danych (czy w apostrofach, czy bez) i aplikacja będzie działać na różnych ustawieniach regionalnych - bo zamieniając przecinek...
Dokładnie tak. Kompilator wykonuje dzieleni całkowite, stąd problem. Swoją drogą, po co ładować float i specjalną wersję sprintf dla tak prostej czynności? Nie prościej pomnożyć result*1000 i podzielić przez 8192, wykonując operację na liczbach całkowitych? Na koniec tylko odpowiednio wyświetlić przecinek i cała operacja jest o jakieś 7kB krótsza i...
Hey. Zrob tak: Pierwszy sposób: #include <stdlib.h> .... float Wynik = 1.123; .... dtostrf(tmp,6,3,pomiar); //zamiana float na string wypiszNaLCD(pomiar); // twoja funkcja wypisująca ciąg znaków Drugi sposób (użycie printf-a): W pliku Makefile dodajesz: # If this is left blank, then it will use the Standard printf version. #PRINTF_LIB...
https://obrazki.elektroda.pl/7640927000_... Dzisiaj pokażę jak można postawić na Arduino R4 WiFi prostą stronę WWW wyświetlającą zebrane przez nas pomiary na ładnych, czytelnych wykresach. Być może przyda się komuś to do projektu typu czujnik temperatury, pomiar zużycia energii czy tam stacja pogodowa. Wykresy będzie rysować dobrana...
nie wiem co masz na myśli że podając km to zapisuje się w zmienną w metrach Chodzi o to, że zapis zmiennoprzecinkowy ma swoje problemy (przykładowo, float 0.1 + float 0.2 nie jest równy float 0.3). W takich małych układach jest przede wszystkim bardzo kosztowny (obliczeniowo) - a przy tym zupełnie zbędny. Bo nigdy nie osiągniesz precyzji 0.0000001...
Nie znam się na Arduino ale normalnie zmienne float dla 8 bitowców to zdecydowanie NIE!!! Lepiej jest operować na zmiennych całkowitych (np: int long) a tylko na końcu wyświetlać kropkę czy tam przecinek tam gdzie trzeba. Generalnie to powinieneś w przerwaniu zwiększać wartość o 15 jeśli już taką liczbę przyjąłeś lub 150 bez żadnego dzielenia. Funkcje...
Użyj liczb stałoprzecinkowych. Użyj zmiennych całkowitych i wykonuj operacje na wartościach 100 razy wyższych niż rzeczywiste. Przy wyświetlaniu po prostu wstaw przecinek w odpowiednie miejsce.
Mam pytanie co do pritfa i floata - jak sformatować tekst, aby %f wyświetlało zawsze tak wynik, że przecinek był w tym samym miejscu niezależnie od tego czy liczba przed przecinkiem jest jedno czy dwu cyfrowa? chodzi mi o to samo co w przypadku %2d - wtedy jednostki są zawsze w jednej kolumnie jeśli wyświetla się wartości jedna pod drugą. Powiem tylko,...
AVE... Piszecie tu o sytuacjach skrajnych na układach o relatywnie ogromnej mocy obliczeniowej i problemach o relatywnie olbrzymiej złożoności obliczeniowej. A co z int vs. float na o wiele mniejszą skalę? Było na początku wspomniane o problemie reprezentacji, i ja chciałbym o tym, jeśli można... Będąc młodym programistą, który na rubieży coś tam sobie...
Jeżeli w sterowniku masz liczbę całkowitą to zamiana na liczbę zmiennoprzecinkową nic ci nie da bo zamiast 20 otrzymasz 20,0 a z 21 otrzymasz 21,0. Co to za poprawa ? Chyba że dla 21 ktoś w sterowniku wpisał 210 a dla 21,5 wpisał 215. Wtedy na SCADZIE albo przesuwasz przecinek albo zamieniasz na float i dzielisz przez 10. Chyba że źle ciebie rozumiem...
Ten opis chyba nie jest dobry. Google wyrzuca Twój wątek na wss.pl, z przykładem kodu autorstwa djroman ale to chyba też nie do końca poprawnie. Szczególnie to D-miejsce kropki dziesiętnej/miejsce+ostatnia cyfra z wartością 0F mi nie pasuje. Czy dysponujesz opisem formatu używanego przez wagę? Jeżeli nie masz dokumentacji formatu zbierz więcej próbek...
Nie chcę używać ani printf ani sprintf dlatego, że już mam przez siebie napisany podprogram wyświetlający. Moze posłuże się przykładem: 1443 / 2230 = 0,647085201793 0,647085201793 * 25 * 60 = 776,502242152466 zaokrąglenie----> 776,502 776,502 * 1000 = 776502 776502 to liczba gotowa do wyświetlenia oczywiście programowo dodany przecinek w odpowiednie...
Czy dolinkowałeś do projektu odpowiednie biblioteki? Poczytaj sobie opis funkcji vfprintf() w dokumentacji avr-lib (w stdio.h). Standardowo dla oszczędności miejsca w pamięci dolinkowywana jest uproszczona wersja biblioteki bez obsługi float. Pewnie to ci psuje zabawę. :) A dlaczego porzuciłeś dtostrf()? Dawno już nie robiłem konwersji z floatów, ale...
s = Days+ StrToFloat("0,5"); To jest błąd. Ja w systemie mam ustawiony symbol dziesiętny na kropkę, a nie przecinek i w tym momencie program się wywali. Przypisuję poprzez format, ponieważ – Days jest typu –int i żeby uzyskać zmienną przecinkową przypisuję ją do funkcji –float, która bez konwersji jej nie rozpoznaje....
Jeśli średnia ma być z liczb naturalnych, to bez sensu jest wczytywać je jako float. Tylko wynik dzielenia trzeba zrobić jako float: printf ("Średnia:%.6f\n", (float) wynik/licznik); Żeby wczytać dowolną ilość liczb, for-a trzeba przerobić na nieskończonego: for (;;) a do scanfa dorobić coś takiego: if (scanf(...)...
itoa -> integer to ascii string -> funkcja zmieniająca liczbę całkowitą na stringa. Nie floaty. Ale można ją próbować wykorzystać z rzutowaniem floata na inty, np.: [syntax=c] float liczba1; // (...) // liczba1 = coś; itoa( (int)liczba1, text, 3 ); // uzyskamy część całkowitą text[3] = ','; // wstawiamy przecinek - znak dziesiętny itoa( (int)(10*liczba1)%10,...
Mam zmienną uint16_t i chcę ją zamienić na ciąg znaków żeby wyświetlić na wyświetlaczu. Wynik chcę przedstawić jako liczbę z częścią ułamkową. Nie chcę używać zmiennej float czy double. Po próbkowaniu mam tam jakiś wynik temperatury. Wynik przemnażam przez 1000 i mam np 243 stopnie C, a w rzeczywistości jest to 24,3 stopnie Celsjusza. Używam funkcji...
Witam! Czy mógłbyś mi pomóc z tym kodem do uzupełnienia obliczeń Na przykład, zanim zaczniesz operować na liczbach musisz je najpierw przekształcić z postaci tekstowej na binarną zmiennoprzecinkową. Zakładam, że zastosowałeś się do sugestii Kol. JacekCz i do gromadzenia danych użyłeś okienka klasy EDIT. Tekst wydobędziesz funkcją np GetWindowText, po...
Panowie ja mam troszkę inny problem z konwersją. Konwertuje mi ale tylko do dwóch miejsc po przecinku. Czego to może być wina? Ja potrzebuję cztery miejsca. Zawsze mogę przecinek przesunąć a potem podzielić liczbę przez 100 ale wolałbym tak nie robić. Wszystko z tego tematu i tego z linka próbowałem i ciągle to samo. Konwertuje mi z łańcucha tylko dwa...
Kiedyś szukałem jak zaokrąglić do 3 miejsc po przecinku. Znalazłem różne rozwiązania m.inn. to Co prawda dotyczy double ale może coś wykombinujesz. [syntax=c] double zaokraglij_do_3(double x) { int y = x * 10000; // przesuwamy przecinek o 4 miejsca i pozbywamy sie reszty za przecinkiem - y jest calkowite if (y % 10 >= 5) y += 10; // jezeli cyfra jednosci...
Można też kombinować inaczej. Tzn zapisać sobie osobno część całkowitą i osobno to, co mamy po przecinku. Ja czasem zamiast używać liczb rzeczywistych - po prostu używam wartości pomnożonych przez 100 trzymanych w zwykłym uint32_t (zaokrąglenie do 2 miejsc po przecinku). Czyli wyświetlając przesuwam sobie po prostu przecinek w lewo o 2 pozycje. Prosto,...
Użyj sprintf z odpowiednim ciągiem formatującym. Hmm... Tylko jaki ten ciąg? Dodano po 48 Rozwiązane. zrzucam liczbę funkcją itoa() do tablicy a później tę tablicę znak po znaku wysyłam na LCD w stosownej kolejności, wstawiając kropkę.
zrobiłem tak: [syntax=cpp] int main(void) { char bufor_UART1[401]; char* wskaznik; wskaznik = &bufor_UART1[401]; int i = 0; float longitude; USART1_Init(MYUBRR); while (1) { if (USART1_Receive() == '$') { for (i = 0; i < 400; i++) { bufor_UART1[i] = USART1_Receive(); if (bufor_UART1[i] == '\n' || bufor_UART1[i] == '\r') { break; } } if (memcmp(bufor_UART1,...
Użyj float i funkcji ftoa. Nie wiem jakiego kompilatora używasz ale w CodeVision taka jest. Jeżeli nie używasz liczb zmienno przecinkowych a jedynie stałoprzcinkowe możesz użyć int i zapisać w nim 237(najlepiej jeszcze unsigned) albo wręcz unsigned char :) . Przy wyświetlaniu wstaw w odpowiednie miejsce przecinek i gotowe. Pozdrawiam.
Z tego co pamietam funkcja atof czeka na kropke nie przecinek (chodzi o separator dziesietny). Ponizej prosty kod zamieniajacy , na . char* str = s; while ( *str ) { if ( *str == ',' ) *str = '.'; ++str; } Dodano po 11 Mozna tez tak: int cal, ul; fscanf( plik, "%d,%d", &cal, &ul ); Oczywiscie dostaniemy z...
operuj na zmiennych typu uint8_t (osobno część całkowita, osobno dziesiętna), wówczas nie będziesz musiał marnować kodu na float i jego konwersję, co jest " trochę nieoptymalne". poszukaj w sieci bibliotek Petera Danneggera - będzie szybciej. poszperaj w postach na forum, było już chyba wszystko na temat tego czujnika. Wydaje mi się że unit8_t nie...
Piszę program na mikrokontroler , jedna z funkcji działa z argumentem float zmieniając jego wartość. Okazało się że z powodu zaokrągleń nie dostaję np. 3.1,3.2,3.3 itd ale 3.1, 3.199, 3.3, 3.3999 itd. Skutkuje to problemami przy wyświetlaniu cyfr na wyświetlaczu siedmiosegmentowym 3-cyfry. Jak poradzić sobie z kwestią zaokrągleń ? //--------------------------------------...
Takie głupie pytanie: jakiego typu jest v_temp? Przy obliczeniach jest automatyczne rzutowanie na float i spowrotem do całkowitych po obliczeniach? Co do przesuwania wyników to już ktoś wcześniej zwracał uwagę że indeksy tablicy lecą od 0 a nie od 1 i tymczasem tylko to mogę podejrzewać. Wyświetlanie liczb z przecinkiem można zrobić prosto, nawet na...
Dziękuję kolego! :) na razie projekt ruszył, jak by coś jeszcze wynikło będę pytał, na razie, jeszcze raz Dzięki :) Dodano po 1 no i jest kolejny problem, otóż jak widać w programie odczytuje ADC H , więc moja rozdzielczość wynosi 255. 1) Teraz jak chcę odczytać cały rejestr w GCC po prostu wklepuje ADC, zamiast ADCH? by mieć rozdzielczość1024? bo jeśli...
Udało mi się znaleźć kod, który wyświetla temperaturę bez float i sprintf // Set TEMP_RESOLUTION to the corresponding resolution of used DS18x20 sensor: // 18S20: 9 (default setting; can be 9,10,11,or 12) // 18B20: 12 const unsigned short TEMP_RESOLUTION = 12; Display_Temperature(unsigned int temp2write) { const unsigned...
Wkleiłem fragment kodu wyświetlający temp. na monitorze.Pomiary normalnie się zmieniają.Poniżej wklejam kod z dopisanym fragmentem. [syntax=c]#include <OneWire.h> #include <DS18B20.h> #include <AltSoftSerial.h> #define ONEWIRE_PIN 5 float currentTemp; // AltGSM always uses these pins: // // Board Transmit Receive PWM Unusable // -----...
Ze wszystkim sobie poradziłem, obecnie mam problem z liczbami nie całkowitymi. AVR Studio + WinAVR np mam zmienną x = 10 teraz chce zapisać w zmiennej y = x/4 Wynik to oczywiście 2,5 ale jak wykonać takie dzielenie? Takie coś nie działa: unsigned int x=10; float y y = x/4; Operacja po prawej z racji "całkowitości" obu operandów dzielenia zostanie wykonana...
Hej. Mam problem. Na początek powiem, że używam FreeRTOS (choć wydaje mi się, że to bez związku). Mam taki kod: [syntax=c]przecinek=(float)licz/100; zmienna=(int)(round(przecinek)); if(zmienna >= 4 ) { fifo[i]=(int)round(przecinek); i+=1; }[/syntax] Działanie: zapisuję do "przecinek" liczbę zmiennoprzecinkową. "zmienna" powstała tylko w celu podejrzenia...
Co to za studia kończysz, chyba nie techniczne? W takiej sytuacji do przechowywania temperatur użyj najnormalniej w świecie typ int (int16_t / uint16_t w zależności od zakresu temperatur). Jeśli rozdzielczość odczytów masz 0,1C to przechowuj wartość dziesięciokrotnie większą pamiętając, gdzie jest przecinek. Na przykład dla 20,8C przechowujesz 208....
Wygląda nieźle, przy czym jeśli dobrze widzę (a nie znam simensa) mnożysz liczbę z zakresu 0-25 przez 10 a potem oczekujesz 2500, to mi się nie zgadza. Chyba że konwerter float->int wstępnie też mnoży przez 10 (pomija przecinek) Ten tasiemiec liczników dobrze jest rozbić na pojedyncze wiersze, jak trzeba to dodać bity pomocnicze, chyba że jesteś na...
float normalized = 1.0 * x / INT32_MAX; To mnożenie przez 1.0 jest tu do czegoś potrzebne? Konieczny trick w tych językach, inaczej wejdziesz na pole minowe dzielenia stałoprzecinkowego. Rzutowanie na zmienny przecinek też by było ok (i chyba bez różnicy w wydajności)
Witam, chciałem sobie napisać program, który przelicza walutę. Ale jak się wpiszę np. 3,14 to przerywa program, a jak wpiszę 3.14 to jest ok, zapewne chodzi o ten przecinek i kropkę. I chciałem się zapytać co można zrobić, żeby nie wywalało z programu po wpisaniu błędnego formatu? Wczytaj stringa , zastąp przecinek kropką i wtedy zrób konwersję na...
Musisz użyc wstawek assemblera. Albo pozostac przy float-ach...
Tak, jak masz to teraz zrobione, po wyeliminowaniu błędów, liczba np. 1.001 będzie wysyłana jako 1.1. Raczej pomnóż liczbę zmiennopozycyjną przez np. 10000, potem zamień na całkowitą, następnie na postać znakową i podczas wysyłania wstaw w w odpowiednim miejscu kropkę/przecinek.
Jakaś zmienna zmiennoprzecinkowa: "float" lub jeśli będziesz korzystał z biblioteki math to wtedy lepiej "double". Trzeba tylko pamiętać że jest to dość "kodożerne". Wiąże się to z działaniami na zmiennych wielobajtowych. Z tego co testowałem avr-gcc w tym zakresie, to jak chcesz oszczędzić pamięć programu lepiej przechodzić na stały przecinek. Ma to...
Witam, Piszę prosty kalkulator zmiennoprzecinkowy na spartanie 3, mam już alu, potrafię już zczytywać liczby z klawiatury do BCD i potrzebuję je konwertować na float'a (zmienny przecinek) Macie, może jakiś pomysł? //wszędzie jest jak zamienić naturalny na bcd, ale to mnie nie ratuje.
Cześć. W nowej wersji fajna jest funkcja oblicznia kątów widzenia na podstawie długości ogniskowej. Nie mogę jednak wstawić kropki, a przecinek jest uważany jako error: invalid float... Pozdrawiam.
Mam dwa bajty w hex o wartościach 0xB5 0x00 i wiem tylko tyle, że w zapisie dziesiętnym powinno mi to dać 12,36. Tak jak koledzy wyżej piszą, potrzeba więcej informacji. Z tych dwóch bajtów sposobów na przełożenie na owe dwanaście z kawałkiem jest milion i każdy zły. Albo to nie jest dwa bajty a osiem, wówczas to będzie zapis float, wykladnik i mantysa....
O ile GPT-4 prezentował płaską, niemal monofoniczną perspektywę, GPT-5 rozkłada odpowiedzi w trójwymiarowej przestrzeni. Konteksty ustawiają się precyzyjnie między wirtualnymi głośnikami, a separacja poszczególnych argumentów jest krystalicznie czysta. GPT-5 absolutnie miażdży poprzednika. Gdzie czwórka kompresowała subtelności do 16-bitowej "płaskości",...
Nie musi być typu float. Wystarczy, że a będzie przechowywać wartość pomnożoną przez 10, a przy wyświetlaniu wstawisz przecinek pomiędzy odpowiednie cyfry.
To nie ma nic do windowsa, działasz totalnie na oślep. Tak się nie rozwiniesz jako programista. I nie naprawia się błędów przez reinstalacja, ale przez precyzyjną analizę. Na małych architekturach zmienny przecinek nie jest przyłączany by default, a na życzenie. Problem tkwi w twoim projekcie. To mogą być paradoksalne złączenia okoliczności, jak sprintf...
Piotruś wiesz co robi pies jak nie ma co robić? Nie pisz mi co będzie dla mnie, albo kogoś lepsze. W przeciwieństwie do Ciebie pamiętam na czym skończyła się rozmowa. Pisałem z autorem o tym by pozbyć się Single co dla Twojego rozumku widzącego tylko C przekłada się na "float" Tak więc pokazałem jak pozbyć sie floatów przesuwając przecinek. Kod się...
Przede wszystkim zrezygnuj z float, które w tym przypadku jest kompletnie zbędne. Zamiast tego pomyśl - np. 1.9 to to samo co 19, wystarczy tylko przesunąć przecinek. Analogicznie można sobie przekonwertować część ułamkową temperatury.
Witam, Zobacz w Panelu Sterowania ->Liczba->Symbol dziesiętny co tam jest kropka czy przecinek. Zobacz też w swoim pliku tekstowym z programu jaki tam jest symbol. Powinno być to samo. Jeżeli jest różnica jest to przyczyna Twojego "bólu" czyli przy przenoszeniu danych z pliku do tabeli trzeba zmienić symbol dziesiętny na taki jak ma być (z punktu widzenia...
Nie w tym miejscu dokonujesz przekazania wartości z POSTa do zmiennej (wcześniej masz zmienną, która powinna z niego brać!) Możesz śmiało używać podwójnego cudzysłowia do wyświetlania tekstów; zmienne tablicowe w takim ciągu ujmuj w nawiasy klamrowe {} Zasadniczo nie wiem, czemu w tablicy cen masz wartości ciągów, zamiast liczbowe... Czemu ciągi znaków...
dzielenie przecinek ds18b20 przecinek wyświetlać przecinek
remont automatu wymiana silnika kangoo podstawka programowania atmega8
schemat sterownika centralnego zamka renault przedni napęd
Sharp LC-50LE751V - Specyfikacja i typowe usterki BMW E46 2.0d 136KM 2000 – usunięcie immobilisera EWS 3, DDE 4.0, emulator, IMMO OFF