numeri decimali


buon giorno tutti!
ho un proble che non risco risolvere, potreste aiuntarmi?
ecco il codice:
code: [select]

#include <spi.h>
#define log_period 15000  //logging period in milliseconds, recommended value 15000-60000.
#define max_period 60000  //maximum logging period without modifying sketch

unsigned long counts;     //variable gm tube events
unsigned long cpm;        //variable cpm
unsigned int multiplier;  //variable calculation cpm in sketch
unsigned long previousmillis;  //variable time measurement



void tube_impulse(){       //subprocedure capturing events geiger kit
  counts++;
}

void setup(){             //setup subprocedure
  counts = 0;
  cpm = 0;
 
  multiplier = max_period / log_period;      //calculating multiplier, depend on log period
  serial.begin(9600);
  attachinterrupt(0, tube_impulse, falling); //define external interrupts
 
}

void loop(){                                 //main cycle
  unsigned long currentmillis = millis();
  if(currentmillis - previousmillis > log_period){
    previousmillis = currentmillis;
    cpm = counts * multiplier;
   
    serial.print(cpm);
    serial.print("cpm ");
    serial.print(cpm/151, 4);// questo non funge...
    serial.println("usv/h");
   
       counts = 0;
  }
 
}

vorrei avere sievert con 4 numeri dopo la virgola, ma continua darmi solo la prima cifra...
sul monitor seriale ottengo questo:
312cpm 2usv/h
288cpm 1usv/h
304cpm 2usv/h
260cpm 1usv/h
244cpm 1usv/h
340cpm 2usv/h

cosa sto sbagliando? anche se scrivo: serial.print(3344/838823, 3); mi da solo la prima cifra...
grazie mille in anticipo!

e' semplice: essendo la variabile cpm intera, la sua divisione per l'intero 151 restituisce un intero.

se dividi, invece, per 151.0, il risultato sarà un float.

nella prova che hai fatto sostituisci 838823 con 838823.0 e vedrai la differenza.


Arduino Forum > International > Italiano > Generale (Moderator: leo72) > numeri decimali


arduino

Comments

Popular posts from this blog

Valutazione Template - Joomla! Forum - community, help and support

SD Datastring Convention

First use of Arduino Uno : avrdude error on Blink uploading