![]() |
problem with printing float
1 Attachment(s)
We're having a problem with printing any floats in our program. We are performing a division of an integer casted to a float and another integer. Even if we assign a float varaible a constant 0.12345 it won't print to the screen. Any help would be greatly appreciated! The file is attached.
One thing we have noticed is that our MPLAB compiler is configured for the PIC18F8722 and successfully compiles. However if we configure it to the PIC18F8520, it gives the following error. MPLINK 3.90, Linker Copyright (c) 2004 Microchip Technology Inc. Error - processor types do not agree across all input files. Errors : 1 BUILD FAILED: Mon Feb 11 18:40:58 2008 We are suspecting that this is the source of the problem. Thanks, Windell #2477 |
Re: problem with printing float
printf does not support %f.
Something like printf("%ld", (long)(ratio * 1000) ); might work, though you're likely to run into a lot of problems with floats. You can avoid floats entirely by shifting the number up to store your decimal places, but in an integer type. Then in calculations, shift it back down. For example: Code:
long ratio;(In case you don't already know, x<<8 = x*(2^8) and x>>8 = x/(2^8).) |
Re: problem with printing float
I posted a floating point print routine last year. Available at http://www.chiefdelphi.com/forums/sh...ad.php?t=55105
|
Re: problem with printing float
Here's an another alternative with just a little manipulation. You can turn something such as this into a utility function.
Code:
#define ACCURACY 1000 //How many decimal places are important to you |
| All times are GMT -5. The time now is 23:50. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi