473,395 Members | 1,677 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Floating point problem .....................

Hi

please check ffollowing conditon
variable float1 and float2 holds user entered value.....

Answer=float1 * float2; //output must be 8.5

output must to be 8.5 but it has 8.500002, i am confused at this point
i used calculators and other calculation mathods to see the actual
value and thet give correct 8.5 with no other decimals......

i also know that to hold exact decimals of we use f for float and m for
decimal
but that is usefull at the time of assigning inline value that is

float fVar=100.1002f;

but what about if we want same kind of things in output/value generated
by variables?

please any one knows about it

Thanks
--------
Hitendra Patel

Nov 17 '05 #1
7 1952
Floating point numbers are just approximations to the number that you
actually want. Whenever you use them, you're going to get rounding errors.
If you don't want rounding errors, use the Decimal structure - that's a
fixed point numeric data type.

--
Regards,

Tim Haughton

Agitek
http://agitek.co.uk
http://blogitek.com/timhaughton
"Hiten" <hi********@gmail.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
Hi

please check ffollowing conditon
variable float1 and float2 holds user entered value.....

Answer=float1 * float2; //output must be 8.5

output must to be 8.5 but it has 8.500002, i am confused at this point
i used calculators and other calculation mathods to see the actual
value and thet give correct 8.5 with no other decimals......

i also know that to hold exact decimals of we use f for float and m for
decimal
but that is usefull at the time of assigning inline value that is

float fVar=100.1002f;

but what about if we want same kind of things in output/value generated
by variables?

please any one knows about it

Thanks
--------
Hitendra Patel

Nov 17 '05 #2
You seem not to understand the concept of floating point numbers.
Jon Skeet has a good article explaining "why are the arithmetics wrong",
refer to http://www.yoda.arachsys.com/csharp/floatingpoint.html or any
computer science book where you can learn about this issue

"Hiten" <hi********@gmail.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
Hi

please check ffollowing conditon
variable float1 and float2 holds user entered value.....

Answer=float1 * float2; //output must be 8.5

output must to be 8.5 but it has 8.500002, i am confused at this point
i used calculators and other calculation mathods to see the actual
value and thet give correct 8.5 with no other decimals......

i also know that to hold exact decimals of we use f for float and m for
decimal
but that is usefull at the time of assigning inline value that is

float fVar=100.1002f;

but what about if we want same kind of things in output/value generated
by variables?

please any one knows about it

Thanks
--------
Hitendra Patel

Nov 17 '05 #3
declare your variable as type 'decimal'

A good computer science textbook on numerical representations wouldn't hurt
either.

Your computing hardware can only accurately represent specific values. It
gets as close as it can while still allowing the 'radix' to float (hence the
name). This allows the same variable to represent very large numbers (1.234
* 10^13) and very small numbers (0.34 * 10^-14).

Decimal types doesn't try. The decimal type represents a fixed number of
digits of accuracy. If the number cannot be represented by that fixed width
radix (as in astronomy calculations or algebraic formulas), then decimal
numbers aren't your answer. However, if you are doing money calculations,
or calculations where the rounding error is precalculated (such as
comparisons against a lookup table of some kind), then you are likely to be
much better off declaring decimal variables.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Hiten" <hi********@gmail.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
Hi

please check ffollowing conditon
variable float1 and float2 holds user entered value.....

Answer=float1 * float2; //output must be 8.5

output must to be 8.5 but it has 8.500002, i am confused at this point
i used calculators and other calculation mathods to see the actual
value and thet give correct 8.5 with no other decimals......

i also know that to hold exact decimals of we use f for float and m for
decimal
but that is usefull at the time of assigning inline value that is

float fVar=100.1002f;

but what about if we want same kind of things in output/value generated
by variables?

please any one knows about it

Thanks
--------
Hitendra Patel

Nov 17 '05 #4
Tim Haughton <ti*********@gmail.com> wrote:
Floating point numbers are just approximations to the number that you
actually want. Whenever you use them, you're going to get rounding errors.
If you don't want rounding errors, use the Decimal structure - that's a
fixed point numeric data type.


No, decimal is still floating point type - it's just a floating
*decimal* point rather than a floating *binary* point.

Floats/doubles are precise in the same way that decimals are - it's
just that the set of numbers which can be precisely represented is
different.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 17 '05 #5
it works with decimal i knew that there are problems with float &
double data type......

but to hold exact value with decimal with float,decimal we put f,m
after litral that is 100.99f & 100.99m but suppose i want some values
to be stored in variable and i want tha variable must hold exact value
as user enter

so there is any other way for it or i have to write my own logic or
class....

Nov 17 '05 #6
Nick Malik [Microsoft] <ni*******@hotmail.nospam.com> wrote:
declare your variable as type 'decimal'

A good computer science textbook on numerical representations wouldn't hurt
either.

Your computing hardware can only accurately represent specific values. It
gets as close as it can while still allowing the 'radix' to float (hence the
name). This allows the same variable to represent very large numbers (1.234
* 10^13) and very small numbers (0.34 * 10^-14).

Decimal types doesn't try. The decimal type represents a fixed number of
digits of accuracy. If the number cannot be represented by that fixed width
radix (as in astronomy calculations or algebraic formulas), then decimal
numbers aren't your answer. However, if you are doing money calculations,
or calculations where the rounding error is precalculated (such as
comparisons against a lookup table of some kind), then you are likely to be
much better off declaring decimal variables.


I'm afraid there's a bit of confusion here.

Firstly, the radix itself doesn't float - it's 2 for double/float, and
10 for decimal. The radix *point* (i.e. the value of the exponent)
floats - and that's true for both decimal and float/double - they're
all floating points.

However, the range of the exponent in decimal is much smaller than the
range of the exponent in float/double.

In both cases, until you reach the extremes, the accuracy is
effectively fixed - 28 or 29 decimal digits for decimal, 15 or 16
decimal digits for double, and 7 decimal digits for float.

The most important difference between decimal and float/double,
however, is the base (the radix) - as decimal's radix is 10, it can
precisely store numbers which can be precisely represented as decimals
(subject to number of decimal places and scale). Compare this with
float/double, neither of which can store even 0.1 precisely, as that
cannot be precisely represented as a binary number.

See http://www.pobox.com/~skeet/csharp/decimal.html and
http://www.pobox.com/~skeet/csharp/floatingpoint.html for more
information.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 17 '05 #7
Hiten <hi********@gmail.com> wrote:
it works with decimal i knew that there are problems with float &
double data type......

but to hold exact value with decimal with float,decimal we put f,m
after litral that is 100.99f & 100.99m but suppose i want some values
to be stored in variable and i want tha variable must hold exact value
as user enter

so there is any other way for it or i have to write my own logic or
class....


You'll need to use Decimal.Parse, basically.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 17 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

31
by: JS | last post by:
We have the same floating point intensive C++ program that runs on Windows on Intel chip and on Sun Solaris on SPARC chips. The program reads the exactly the same input files on the two platforms....
5
by: Anton Noll | last post by:
We are using Visual Studio 2003.NET (C++) for the development of our software in the fields digital signal processing and numerical acoustics. One of our programs was working correctly if we are...
687
by: cody | last post by:
no this is no trollposting and please don't get it wrong but iam very curious why people still use C instead of other languages especially C++. i heard people say C++ is slower than C but i can't...
24
by: j0mbolar | last post by:
C supports single precision floating point and double precision floating point but does it support fixed floating point? i've read that fixed floating point is more accurate than single precision...
7
by: Vinoth | last post by:
I'm working in an ARM (ARM9) system which does not have Floating point co-processor or Floating point libraries. But it does support long long int (64 bits). Can you provide some link that would...
15
by: michael.mcgarry | last post by:
Hi, I have a question about floating point precision in C. What is the minimum distinguishable difference between 2 floating point numbers? Does this differ for various computers? Is this...
13
by: Bern McCarty | last post by:
I have run an experiment to try to learn some things about floating point performance in managed C++. I am using Visual Studio 2003. I was hoping to get a feel for whether or not it would make...
4
by: jacob navia | last post by:
Hi people I continue to work in the tutorial for lcc-win32, and started to try to explain the floating point flags. Here is the relevant part of the tutorial. Since it is a difficult part, I...
32
by: ma740988 | last post by:
template <class T> inline bool isEqual( const T& a, const T& b, const T epsilon = std::numeric_limits<T>::epsilon() ) { const T diff = a - b; return ( diff <= epsilon ) && ( diff >= -epsilon );...
39
by: rembremading | last post by:
Hi all! The following piece of code has (for me) completely unexpected behaviour. (I compile it with gcc-Version 4.0.3) Something goes wrong with the integer to float conversion. Maybe somebody...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.