[zxspectrum] Re: z88dk e artirmetica floating point... ho trovato un'anomalia?

  • From: Marcello Zaniboni <marcello.zaniboni@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Wed, 19 Oct 2005 10:30:53 +0200

OK. Adesso il listato è questo:

/*-------------------------------------------*/

#include <stdio.h>
#define MOVE_MEMORY 150

unsigned int a_part = 40;

int main(void) {

  double perc = ( double ) a_part / MOVE_MEMORY * 100;

  printf("%f", perc);
  return 0;
}

/*-------------------------------------------*/

Con questo nuovo listato l'output è finalmente corretto (26.666667),
ma i warning ora sono due:

sccz80:"test_fp2.c" L:10 Warning:#27:Int constant in double expression
sccz80:"test_fp2.c" L:10 Warning:#27:Int constant in double expression

La linea 10 è proprio quella del calcolo in floating point.

...comunque va già meglio: almeno adesso il calcolo lo fa; anche se è
un po' desolante
1) non capire perché prima non funzionava e avere
2) avere dei warning in compilazione

Per la cronaca: attualmente compilo con z88dk, ultima release stabile
(quella per cui ho fatto l'installer) utilizzando questo comando:
zcc +zx -O3 -zorg=25000 -create-app -vn -lndos -lm -o test_fp2 test_fp2.c

Ciao,
Marcello

Other related posts: