logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATtiny2313][Bascom] - Jak zadeklarować liczbę stałoprzecinkową ?

yokoon 04 Lip 2013 07:46 2148 14
REKLAMA
  • #1 12485253
    yokoon
    Poziom 29  
    Witam.
    Jaki typ liczby 0,007987 powinienem zadeklarować ?

    Deklaruję w ten sposób:

    Dim Licz_0,007987 As Single otrzymuję następujące Errory:

    Single - może przyjmować wartość dowolnej liczby stało lub zmiennoprzecinkowej.

    Error nr - 26 spodziewano się As.

    Error nr 15 i 31 - Błędny typ danych.

    Podstawiałem dla próby pozostałe typy Byte , Integer , Long , Word , oczywiście spodziewałem się błędów.

    Proszę o podpowiedź co robię źle.
  • REKLAMA
  • #2 12485278
    Konto nie istnieje
    Poziom 1  
  • #3 12485297
    yokoon
    Poziom 29  
    atom1477 napisał:
    Dajesz przecinek zamiast kropki.


    Niestety nie pomaga zamiana na kropkę.

    Chodzi o błędny typ danych.
  • REKLAMA
  • #4 12485300
    Tom1988p
    Poziom 16  
    Ja traktuję liczbę stałoprzecinkową jako liczbę całkowitą gdzie sam ustalam w którym miejscu ma być przecinek ale tylko gdy przychodzi do wyświetlania.

    Działam na C dlatego taki przykład dam:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Prosty przykład. Może rozjaśni Ci sytuacje.

    A tutaj jest przykład jak to wyświetlać, tak na przyszłość.
  • REKLAMA
  • #5 12485313
    yokoon
    Poziom 29  
    Nie wiem czy mogę tak zrobić, ponieważ tę liczbę muszę załadować do Timera.
    Spróbuję. Dzięki za podpowiedź.
  • #6 12485325
    Tom1988p
    Poziom 16  
    Ale timer przyjmuje tylko liczby całkowite, chyba że się nie rozumiemy. Podaj przykład zastosowania, oraz te wyliczenia co chcesz załadować i gdzie je wcisnąć ;)
  • #7 12485343
    yokoon
    Poziom 29  
    Wklejam kod.
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #8 12485364
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #9 12485521
    yokoon
    Poziom 29  
    Jest to kod z Pana Wiązani być może nieudolnie przerobiony.

    Oryginał ma tak:
    Dim licz_8ms As Byte

    Incr Licz_8ms

    If Licz_8ms = 125 Then
    .............

    I to działa, czyli ja nie mogę używać liczby stałoprzecinkowej.

    Chociaż typ danych Single mówi, iz może przyjmować wartości stało i zmiennoprzcinkowe.

    Chyba, że źle to rozumiem.

    Ale dzięki za wyjaśnienia.
  • Pomocny post
    #10 12485613
    Konto nie istnieje
    Poziom 1  
  • #11 12485736
    yokoon
    Poziom 29  
    Ale Integer nie typem przecinkowym.

    Dzięki atom za podpowiedzi myślę, iż na tym zakończymy.
  • #12 12486190
    Konto nie istnieje
    Poziom 1  
  • #13 12486266
    yokoon
    Poziom 29  
    atom1477 napisał:
    yokoon napisał:
    Ale Integer nie typem przecinkowym.

    Chyba brakuje "jest" :D

    No nie jest typem przecinkowym. No ale to chyba dobrze?


    Tak rzeczywiście zjadłem "jest"

    Ale ja potrzebowałem określić typ dla liczby 0,007987 .
  • #14 12486275
    Konto nie istnieje
    Poziom 1  
  • #15 12486306
    yokoon
    Poziom 29  
    atom1477 napisał:
    No to pytanie dlaczego w ogóle chciałeś użyć zmiennej Single?


    Uważałem, że tak będzie dobrze.

    typ danych Single mówi, iż może przyjmować wartości stało i zmiennoprzcinkowe.
REKLAMA