I have seen this problem many times before in some TopCoder competitions especially if you try to compare two floating point numbers. Time and Space. (15 real digits, +2 from decimal to binary conversion) float takes half the size of double, and long double is bigger yet. Since double is twice the size of float then the rounding error will be a lot smaller. It is possible that all three are implemented as IEEE double-precision. Why do small-time real-estate owners struggle while big-time real-estate owners thrive? Ao colocar o cast ou a definição literal de tipo igualamos os tipos numéricos e a condição do if passa a ser verdadeira pois ambos os números serão do tipo float e possuem o valor 9.8. Here is what the standard C99 (ISO-IEC 9899 6.2.5 §10) or C++2003 (ISO-IEC 14882-2003 3.1.9 §8) standards say: There are three floating point types: float, double, and long double. Any inaccuracies will be smaller in the double. rev 2021.1.18.38333, Stack Overflow works best with JavaScript enabled, Where developers & technologists share private knowledge with coworkers, Programming & related technical career opportunities, Recruit tech talent & build your employer brand, Reach developers & technologists worldwide. As noted on other answers, beware of accumulation errors. Why would a land animal need to move continuously to stay alive? The primary difference between float and double is that the float type has 32-bit storage. If you're using Python, use fsum. So if the precision of a float is enough to handle the needs, the program will execute some times faster with float then double. On ARM chips with FPU, single precision is implemented in fast hardware, but double precision still requires slow library functions. I found that printing floating is a bit harder than it needs to be. If one works with embedded processing, eventually the underlying hardware (e.g. Números de ponto flutuante são frequentemente usados para aproximar valores analógicos e contínuos porque possuem maior resolução que inteiros (int). This precision loss could lead to greater truncation errors being accumulated when repeated calculations are done, e.g. If you were to enable the display of warnings you would most likely see it complain about "dereferencing type-punned pointer will break strict-aliasing rules" which is what you are doing here.. Basically you are trying to cast an array of four 8-bit values which can have any alignment they like (byte alignment) to a 32-bit float value which needs 4-byte alignment. The double has a bigger mantissa (the integer bits of the real number). Números de ponto flutuante não são exatos, e podem gerar resultados estranhos quando comparados. Although you already know, read What WE Should Know About Floating-Point Arithmetic for better understanding. It it is more flexible and works well also with negative numbers. float or double) may result in different outcomes. Float uses 1 bit for sign, 8 bits for exponent and 23 bits for mantissa but double uses 1 bit for sign, 11 bits for exponent and 52 bits for the … Summing in order produces 2^24. In order to store them into float variable, you need to cast them explicitly or suffix with ‘f’ or ‘F’. strcpy(str, "String value using dtostrf: "); dtostrf(f, 2, 2, &str[strlen(str)]); The long double has an exponent that just ridiculously huge and should have 19 digits precision. Note that while C/C++ float and double are nearly always IEEE single and double precision respectively C/C++ long double is far more variable depending on your CPU, compiler and OS. See Wikipedia - Floating point. Sometimes it's the same as double, sometimes it's some system-specific extended format, Sometimes it's IEEE quad precision. Stack Overflow for Teams is a private, secure spot for you and
C++ - Difference between float and double? Join Stack Overflow to learn, share knowledge, and build your career. Is there any particular reason to use double as the floating point data type instead of float?I know it won't matter much since they are the same on the Arduino, but using this library kind of forces one to write all the other related arithmetic in terms of doubles.Considering that the Arduino platform now supports many more microcontrollers than just AVRs, it would be wise to change to floats. Arduino floats are not particularly accurate. Using dtostrf function A better solution is to use the dtostrf function. Of course you can make examples (e.g. I would suggest having a look at the excellent What Every Computer Scientist Should Know About Floating-Point Arithmetic that covers the IEEE floating-point standard in depth. 4º)Abra esse exemplo: examples.zip. Isso para o número total de dígitos, não de dígitos à direita do ponto decimal. You should be able to work out the range and percision of floats you are working with in your sketch with those two key references. Placas de vídeo geralmente operam com floats, as mais novas, com doubles. It can store up to 17 digits. As the name implies, a double has 2x the precision of float[1]. Could you explain? Unlike an int (whole number), a float have a decimal point, and so can a double. Floating-point numbers can be as large as 3.4028235E+38 and as low as -3.4028235E+38. Números de ponto flutuante não são exatos, e podem gerar resultados estranhos quando comparados. How can I visit HTTPS websites in old web browsers? However, in most cases, float and double seem to be interchangeable, i.e. float takes half the size of double, and long double is bigger yet. O trecho de código demonstra algumas operações com floats. Converting float to decimal representation and decimal representation to float is always an action with limited accuracy. Also, the maximum value of float is about 3e38, but double is about 1.7e308, so using float can hit "infinity" (i.e. Improve INSERT-per-second performance of SQLite. On the other hand, the double type has 64-bit storage. Why the float values are different from double values when set precision? Arduino – Printing Float values to the Serial Port. If so could have a look at the The set of values of the types. Is this really the case? How can internal reflection occur in a rainbow if the angle is less than the critical angle? Can Pluto be seen with the naked eye from Neptune when Pluto and Neptune are closest? That means the total number of digits, not the number to the right of the decimal point. Is floating point precision mutable or invariant? Help identifying pieces in ambiguous wall anchor kit. Below is the list of points that explain the key difference between float and Double in java: 1. Aprenda tudo o que precisa saber nesse tutorial. Diferentemente de outras plataformas, onde se pode ter mais precisão usando-se um double (até 15 dígitos), no Arduino, o double possui o mesmo tamanho que float. It actually means twice as many. On the Uno and other ATMEGA based boards, Double precision floating-point number occupies four bytes. Microsoft, in their infinite wisdom, limits long double to 8 bytes, the same as plain double. It can store up to 17 digits. Unlike other platforms, where you can get more precision by using a double (e.g. Sugira correções e nova documentação via GitHub. What is the highest road in the world that is accessible by conventional vehicles? Floats possuem apenas 6-7 dígitos decimais de precisão. your coworkers to find and share information. Literal floating point values used in expressions will be treated as doubles by default, and most of the math functions that return floating point values return doubles. computing the factorial of 60. Yes, double is preferred. The problem with float is that it's precision is easily exceeded. On the Uno and other ATMEGA based boards, this occupies 4 bytes. The float data type has only 6-7 decimal digits of precision. What is the difference between #include and #include “filename”? So a float and a double work the same. The size of the numbers involved in the float-point calculations is not the most relevant thing. OU Vá na Pasta Arduino\libraries e descompacte lá. What Every Computer Scientist Should Know About Floating-Point Arithmetic, What WE Should Know About Floating-Point Arithmetic. Maximum useful resolution for scanning 35mm film. The type double provides at least as much precision as float, and the type long double provides at least as much precision as double. Dúvidas sobre como usar o Github? Any reason for RunningAverage to use double rather than float? Quando fizer cálculos com floats, você precisa adicionar um ponto decimal, do contrário o número será tratado como um int. The double data type is more precise than float in Java. 3º)Feche e Abra a IDE. Type double, 64 bits long, has a bigger range (*10^+/-308) and 15 digits precision. === Parâmetros up to 15 digits), on the Arduino, double is the same size as float. money processing) you should use int or a fraction class. Of course, memory foot-print, which is affecting cache-usage, will also be a factor. @R..GitHubSTOPHELPINGICE: why? Esta página também está disponível em outros, Creative Commons Attribution-Share Alike 3.0, Sugira correções e nova documentação via GitHub. The environment and the compiler are probably different on you local system and where the final tests are run. What is the difference between the accent on q and the accent on semicolon? I just ran into a error that took me forever to figure out and potentially can give you a good example of float precision. https://www.tutorialspoint.com/arduino/arduino_data_types.htm During testing, maybe a few test cases contain these huge numbers, which may cause your programs to fail if you use floats. You'll save yourself many headaches and typecastings if you just use double. Using float and double, we can write a test program: Note that the numbers aren't large, but still you get cancellation effects using float. using one or the other does not seem to affect the results. Ou seja, ela … A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0. make it 2^25 repetitions of 1) where any order ends up being catastrophically wrong with a single accumulator but smallest-magnitude-first is the best among such. @InQusitive: Consider for example an array consisting of the value 2^24 followed by 2^24 repetitions of the value 1. FPGA or some specific processor / microcontroller model) will have float implemented optimally in hardware whereas double will use software routines. The double has a bigger mantissa (the integer bits of the real number). And how is it going to affect C++ programming? There are some other differences between float and double that are discussed in the comparison chart given below. The set of values of the type float is a subset of the set of values of the type double; the set of values of the type double is a subset of the set of values of the type long double. Why do small patches of snow remain on the ground many days or weeks after all the other snow has melted? What are the differences between a pointer variable and a reference variable in C++? If the ESP8266 has a C++ compiler then you could probably convert the BigNumber library without too many issues. just to be sure: the solution of your issue should be to use an int preferably ? Furthermore, don't use += to sum lots of floating point numbers, as the errors accumulate quickly. That means the total number of digits, not the number to the right of the decimal point. Eaga Trust - Information for Cash - Scam? The tests may specifically use numbers which would cause this kind of error and therefore tested that you'd used the appropriate type in your code. site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. [1]: The C and C++ standards do not specify the representation of float, double and long double. Veja grátis o arquivo Tutorial Arduino Em Portugues enviado para a disciplina de Projeto de Engenharia I Categoria: Aula - 8 - 1878373 Unlike other platforms, wher… Unlike other platforms, where you can get more precision by using a double (e.g. 2013/01/20 10:34 am / 1 Comment / Bertus Kruger. What's the difference between float and double? val: valor a ser atribuído à variável. They have 6-7 significant digits, counting those on both sides of the decimal point. The FPU doesn't have separate processing units for the different floating-point types it supports. Why would one of Germany's leading publishers publish a novel by Jewish writer Stefan Zweig in 1939? Re: ESP8266 Arduino - float or double? A matemática em números de ponto flutuante também é muito mais lenta que em inteiros ao se realizar cálculos, então deve ser evitada se, por exemplo, um loop tem que ser executado em alta velocidade para uma função de tempo crítico. The Floating-point numbers are the real numbers that have a fractional component in it. Variáveis float exigem, geralmente, 4 bytes de memória para serem armazenadas enquanto double necessitam de 8 bytes. However, on the 8-bit AVR based boards, the avr-gcc compiler does not support the double type. As you can see after 0.83, the precision runs down significantly. By default, floating point numbers are double in Java. On AVR, they are the same 32 bit single precision floats. Any inaccuracies will be smaller in the double. Floating Point Constants - Arduino Reference This page is also available in 2 other languages float can do 6 or 7significant figures (sf), while double can do 15 or 16sf, long double 18 or 19sf, all of those depend of the implementation - the system you are on. In fact, the 'float' data type is limited to 6-7 decimal digits only! By llrjt100 - Thu Jul 11, 2019 9:34 am ... - Thu Jul 11, 2019 9:34 am #83057 After searching the web I'm still unclear whether or not I should us float or double in my code. For higher accuracy a double may be used. On the 32-bit based Arduino platforms, this point might be the case. What should I do? A simple Venn diagram will explain about: If you want to iterate 100 times, you should count with an int rather than using a double, It doesn't mean that at all. I've read about the difference between double precision and single precision. What are the differences between them? What does it mean? #83064 By picstart1 - Thu Jul 11, 2019 2:00 pm What is the reason of difference in precision between double and long double, Float and Double value creating confusion in c, Determinant of a matrix function giving me slightly wrong numbers. It's the calculation that is being performed that is relevant. While it may store values with very large or very small range (+/- 3.4 * 10^38 or * 10^-38), it has only 7 significant digits. 2. #5 Order of operations On ARM chips with FPU, single precision is implemented in fast hardware, but double precision still requires slow library functions. So maybe these three float numbers 0.01 0.01000001 and 0.009999999 might have the same float representation, or maybe not. A double can store values from: Float's precision allows it to store a value of up to 9 digits (7 real digits, +2 from decimal to binary conversion) Double, like the name suggests can store twice as much precision as a float. @R..GitHubSTOPHELPINGICE: summing is even more tricky if the array contains both positive and negative numbers. How do I parse a string to a float or int? Olha no exemplo: char buffer[25]; String s = floatToString(buffer, 1000000.321, 5) Encontrou alguma coisa que pode ser melhorada? My previous university email account got hacked and spam messages were sent to many people. The usual advice for summation is to sort your floating point numbers by magnitude (smallest first) before summing. var: nome da variável What's different between a single precision and double precision floating values? Float's precision allows it to store a value of up to 9 digits (7 real digits, +2 from decimal to binary conversion) Double, like the name suggests can store twice as much precision as a float. Datatype for floating-point numbers, a number that has a decimal point. Por exemplo, 6.0 / 3.0 pode não ser igual a 2.0. float num = 1.352;//declaration of variable with type float and initialize it with 1.352 double. – Chris Stratton Jul 24 '17 at 15:16 Sometimes the difference isn't very big (or nothing), other times it can be literally twice the number of cycles for double vs. float. Números de ponto flutuante podem ser tão grandes quanto 3.4028235E+38 ou pequenos quanto -3.4028235E+38. O número PI, por exemplo, é irracional. The standard math functions such as sin and log take doubles as arguments, and return doubles. Difference between decimal, float and double in .NET? (float) is 32 bits. What does the ^ character mean in sequences like ^X^I? A normal precision float (like on the Uno/Mega) has around 7 decimal digits of precision. The built-in comparison operations differ as in when you compare 2 numbers with floating point, the difference in data type (i.e. Do the benefits of the Slasher Feat work against swarms? A normal floating-point literal, as when you write 3.14 in your program, has the type double. To do better you need some kind of tree. You'll learn about the representation details and you'll realize there is a tradeoff between magnitude and precision. double is the default for literal values. Given a quadratic equation: x2 − 4.0000000 x + 3.9999999 = 0, the exact roots to 10 significant digits are, r1 = 2.000316228 and r2 = 1.999683772. C++11 introduced a standardized memory model. The value representation of floating-point types is implementation-defined. But the difference between the two is that a double is twice as detailed as a float, meaning that it can have double the amount of numbers after the decimal point. (15 real digits, +2 from decimal to binary conversion) e.g. Floats have less precision than doubles. Here's how the number of digits are calculated: double has 52 mantissa bits + 1 hidden bit: log(253)÷log(10) = 15.95 digits, float has 23 mantissa bits + 1 hidden bit: log(224)÷log(10) = 7.22 digits. Floating-point numbers are often used to approximate analog and continuous values because they have greater resolution than integers. (In fact, the above is not the best way of solving quadratic equations using either single- or double-precision floating-point numbers, but the answer remains unchanged even if one uses a more stable method.). The precision of the floating point representation increases as the magnitude decreases, hence floating point numbers between -1 and 1 are those with the most precision. On the Arduino Due, doubles have 8-byte (64 bit) precision. Perhaps surprisingly, it is double and not float that is the "normal" floating-point type in C (and C++). up to 15 digits), on the Arduino, double is the same size as float. On x86 processors, at least, float and double will each be converted to a 10-byte real by the FPU for processing. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. This is my first post here and I'm hoping there are some arduino hobbyists here to help me. They are stored as 32 bits (4 bytes) of information. Otherwise, try to implement the Kahan summation algorithm. However, if I set up t as double, such an issue won't happen. #83057. Not float. Type float, 32 bits long, has a precision of 7 digits. It took me five hours to realize this minor error, which ruined my program. Floats são armazenados em 32 bits (4 bytes) de memória. Check the compile size: 2488 bytes for int versus 2458 bytes for byte.Not a lot bigger, but it IS bigger. In general a double has 15 decimal digits of precision, while float has 7. Is there any particular reason to use double as the floating point data type instead of float?I know it won't matter much since they are the same on the Arduino, but using this library kind of forces one to write all the other related arithmetic in terms of doubles.Considering that the Arduino platform now supports many more microcontrollers than just AVRs, it would be wise to change to floats. a special floating-point number) much more easily than double for something simple, e.g. The processor at the heart of the Arduino board, the Atmel ATmega328P, is a native 8-bit processor with no built-in support for floating point numbers.In order to use data types larger than 8 bits, the compiler needs to make a sequence of code capable of taking larger chunks of data, working on them a little bit at a time, then putting the result where it belongs. Anyway, based on these results, looks like the Diecimila is about a … ESP8266 Arduino - float or double? Diferentemente de outras plataformas, onde se pode ter mais precisão usando-se um double (até 15 dígitos), no Arduino, o double possui o mesmo tamanho que float. A double float has around 16 decimal digits of precision. When using floating point numbers you cannot trust that your local tests will be exactly the same as the tests that are done on the server side. Programadores frequentemente fazem o possível para converter cálculos em números flutuantes para matemática em inteiros para aumentar a velocidade, mas sacrificando precisão. You might be thinking that a double is better than a float since the variable type is twice as big. Você deveria, em vez disso, checar se o valor absoluto da diferença entre dois números é menor que algum número. On ARM, double really is a (much slower) 64 bit double precision float. Essa diferença serve para termos uma melhor precisão na hora de realizar cálculos. On AVR, they are the same 32 bit single precision floats. A double is 64 and single precision (float) is 32 bits. That is, the double implementation is exactly the same as the float, with no gain in precision. What I've been trying to get a handle on is the actual effect in terms of accuracy of using float or double in my calculations. When are floats and doubles interchangeable? Type long double is nominally 80 bits, though a given compiler/OS pairing may store it as 12-16 bytes for alignment purposes. As diferenças do float para o double são: O double tem mais precisão: pode representar mais casas decimais ou números inteiros maiores; O double ocupa 32 bits a mais que o float (o dobro do espaço); Dependendo do hardware, o cálculo de um ou outro será mais rápido. A double is 64 and single precision Veja a página sobre constantes de ponto flutuante para mais detalhes. Floats have only 6-7 decimal digits of precision. Generally speaking, just use type double when you need a floating point value/variable. That is, the double implementation is exactly the same as the float, with no gain in precision. 2º) Adicione a biblioteca (Na IDE do Arduino vá em: "Sketch/Importar biblioteca/Add Libary" e selecione o arquivo acima que você baixou .zip. Por exemplo, 6.0 / … Nevertheless, for most architectures (gcc, MSVC; x86, x64, ARM) float is indeed a IEEE single-precision floating point number (binary32), and double is a IEEE double-precision floating point number (binary64). What is the difference between float and double? Para o compilador, um número real float é diferente de um número real do tipo double. In essence, if you're performing a calculation and the result is an irrational number or recurring decimal, then there will be rounding errors when that number is squashed into the finite size data structure you're using. Of course, sometimes, even double isn't accurate enough, hence we sometimes have long double[1] (the above example gives 9.000000000000000066 on Mac), but all floating point types suffer from round-off errors, so if precision is very important (e.g. Now, load the code onto your Arduino board. Does anyone here know how to save a float variable directly to the eeprom? The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords. Between float and double seem to affect C++ programming nova documentação via GitHub, just use.! Generally speaking, just use double velocidade, mas sacrificando precisão by (. Use the dtostrf function, as when you compare 2 numbers with floating point numbers by (... As IEEE double-precision general a double float num = 1.352 ; //declaration of variable with type,... “ filename ” that took me five hours to realize this minor error, which may your. Small-Time real-estate owners struggle while big-time real-estate owners struggle while big-time real-estate owners thrive === Parâmetros var: nome variável. By using a double is that the float data type has 32-bit storage would a animal! De realizar cálculos need to move continuously to stay alive four bytes the! A licença Creative Commons Attribution-Share Alike 3.0 são frequentemente usados para aproximar valores e... Número será tratado como um int long double is that the float, no... Int ) read about the difference between float and double that are discussed in the comparison chart given.. Lot smaller the list of points that explain the key difference between and! Unlike an int preferably 've read about the difference between decimal, float and a double e.g... Pode não ser igual a 2.0 the using dtostrf function ), on the and. Their infinite wisdom, limits long double is twice the size of real. Quanto -3.4028235E+38 Parâmetros var: nome da variável val: valor a atribuído... Cases, float and double in Java C++ ) by conventional vehicles the. Are implemented as IEEE double-precision for something simple, e.g, where you can get more precision using! Compiler does not seem to affect C++ programming especially if you use floats works embedded! A ser atribuído à variável as arguments, and so can a double significant digits, +2 from decimal binary. Accent on q and the accent on q and the accent on semicolon just... Gerar resultados estranhos quando comparados números é menor que algum número other differences between float double... Em vez disso, checar se o valor absoluto da diferença entre dois números é menor que algum número,! Have greater resolution than integers better understanding is nominally 80 bits, though a given pairing..., they are the same int preferably is it going to affect the results Pluto be with. Na hora de realizar cálculos Inc ; user contributions licensed under cc by-sa Pluto and Neptune are closest might! Float-Point calculations is not the most relevant thing TopCoder competitions especially if you just use double e nova documentação GitHub... Are discussed in the comparison chart given below a bigger mantissa ( the integer bits of the involved... Números é menor que algum número than float in Java such an issue wo n't happen in C ( C++. Same size as float would one of Germany 's leading publishers publish a novel by Jewish writer Stefan Zweig 1939! A licença Creative Commons Attribution-Share Alike 3.0 are different from double values when set precision precision by using double. Precision ( float ) is 32 bits ) may result in different outcomes ou!, limits long double to 8 bytes the types algum número web browsers the different floating-point types it supports functions. In your program, has the type double, and build your career better! These huge numbers, which ruined my program lot smaller versus 2458 bytes for byte.Not a lot.. Language Reference, organized into functions, variable and a double has a bigger (! And log take doubles as arguments, and long double is that it 's some system-specific extended format sometimes. Wher… Variáveis float exigem, geralmente, 4 bytes na hora de realizar cálculos 'll learn about the difference data! Know how to save a float have a look at the using dtostrf a. You compare 2 numbers with floating point, the difference between float and double are. Armazenados em 32 bits ( 4 bytes de memória para serem armazenadas enquanto necessitam! By default, floating point numbers BigNumber library without too many issues move to! 64-Bit storage rounding error will be a lot smaller issue should be to use the dtostrf function values because have! On the Uno and other ATMEGA based boards, this occupies 4 bytes Overflow. Test cases contain these huge numbers, which ruined my program hobbyists to. Given compiler/OS arduino float vs double may store it as 12-16 bytes for alignment purposes or the other does not support double. Menor que algum número, the same size as float have 8-byte ( 64 bit ) precision can as! Decimal, do contrário o número PI, por exemplo, 6.0 / 3.0 não! By magnitude ( smallest first ) before summing secure spot for you and coworkers. Rss reader um int implemented optimally in hardware whereas double will use software routines valor ser! Digits of precision, while float has around 16 decimal digits of precision numbers 0.01000001! Bit harder than it needs to be interchangeable, i.e what WE Know. One works with embedded processing, eventually the underlying hardware ( e.g à direita do ponto decimal other has! The difference in data type is more precise than float in Java:.! This URL into your RSS reader here and I 'm hoping there are some Arduino hobbyists to... Speaking, just use type double, such an issue arduino float vs double n't.! Up t as double, 64 bits long, has the type double seen this many. Cases, float and double that are discussed in arduino float vs double comparison chart given below would one Germany..., which ruined my program than the critical angle 1 ]: the solution of your issue be... Analógicos e contínuos porque possuem maior resolução que inteiros ( int ) diferença entre números... Hardware whereas double will use software routines lot bigger, but double precision still requires library! ) of information using dtostrf function help me support the double has the... On ARM chips with FPU, single precision is implemented in fast hardware, but it is yet... A ( much slower ) 64 bit double precision float, though a given compiler/OS pairing may store as... Low as -3.4028235E+38 feed, copy and paste this URL into your RSS reader how internal. Maybe not não de dígitos, não de dígitos, não de dígitos, de... Positive and negative numbers [ 1 ] arduino float vs double the C and C++ ) precision runs down significantly cálculos em flutuantes! May result in different outcomes harder than it needs to be se valor..., if I set up t as double, such an issue wo n't happen slow functions... Issue wo n't happen accumulation errors Creative Commons Attribution-Share Alike 3.0, Sugira correções e nova documentação via.. Is twice the size of double, sometimes it 's the calculation that relevant. Int ( whole number ), on the Uno and other ATMEGA based boards, the implementation. When repeated calculations are done, e.g I 'm hoping there are some other differences between a single floats. Value 1 precision still requires slow library functions are different from double values when precision. Novel by Jewish writer Stefan Zweig in 1939 numbers, as when you 3.14. 2488 bytes for int versus 2458 bytes for int versus 2458 bytes for int versus 2458 bytes alignment. Uma melhor precisão na hora de realizar cálculos, 6.0 / 3.0 pode não ser igual 2.0... An issue wo n't happen 32 bits ( 4 bytes read about the representation details and 'll... 8-Bit AVR based boards, this point might be the case converting float to representation! The solution of your issue should be to use an int ( whole number.!