Click here to Skip to main content
16,016,076 members
Home / Discussions / C#
   

C#

 
GeneralRe: float calculation issue Pin
George_George3-Jun-08 2:51
George_George3-Jun-08 2:51 
GeneralRe: float calculation issue Pin
The Nightcoder3-Jun-08 3:18
The Nightcoder3-Jun-08 3:18 
GeneralRe: float calculation issue Pin
George_George3-Jun-08 21:57
George_George3-Jun-08 21:57 
GeneralRe: float calculation issue Pin
The Nightcoder4-Jun-08 2:55
The Nightcoder4-Jun-08 2:55 
GeneralRe: float calculation issue Pin
George_George4-Jun-08 22:31
George_George4-Jun-08 22:31 
GeneralRe: float calculation issue Pin
The Nightcoder4-Jun-08 23:08
The Nightcoder4-Jun-08 23:08 
GeneralRe: float calculation issue Pin
George_George4-Jun-08 23:28
George_George4-Jun-08 23:28 
AnswerRe: float calculation issue (decimal is no solution) [modified] Pin
The Nightcoder28-May-08 23:12
The Nightcoder28-May-08 23:12 
Finally a thought on using decimal (as others have suggested):

It doesn't solve the problem, it only moves it around a bit... Smile | :)

With decimal data types (such as decimal in C#) you still have the problem that for example 1/3 doesn't have an exact representation. It is always rounded to whatever precision you have (0.33333, 0.33333333333 or whatever - no matter how many decimals you add, it's never exactly 1/3).

What you do get rid of is the problem with values like 0.1 that have an exact decimal representation but don't have an exact binary representation. Or, to put it bluntly: using binary decimal, you no longer confuse people who don't understand how binary floating-point works.

So... if you need to cater for values such as 1/3 (and you always do - for example if you need to amortize a loan over 3 years you would divide by 3, and then you have to make sure you round it correctly), you pretty much have to do what I wrote in my previous answer even when using decimal data types (if you want to make sure you get results that people can understand and verify).

The exception is if you have a language like ADA or T-SQL (Microsofts SQL version) where you can define decimal types with exactly the number of decimals you need. In that case, the rounding I do in my examples is done automatically so you don't have to think about it in your code.

The general rule is: know what you do. It never fails, whether using binary or decimal representations...

Smile | :)

Peter the small turnip

(1) It Has To Work. --RFC 1925[^]

modified on Thursday, May 29, 2008 7:09 AM

GeneralRe: float calculation issue (decimal is no solution) Pin
George_George31-May-08 3:28
George_George31-May-08 3:28 
GeneralRe: float calculation issue (decimal is no solution) Pin
The Nightcoder2-Jun-08 3:02
The Nightcoder2-Jun-08 3:02 
GeneralRe: float calculation issue (decimal is no solution) Pin
George_George3-Jun-08 2:09
George_George3-Jun-08 2:09 
GeneralRe: float calculation issue (decimal is no solution) Pin
The Nightcoder3-Jun-08 2:48
The Nightcoder3-Jun-08 2:48 
GeneralRe: float calculation issue (decimal is no solution) Pin
George_George3-Jun-08 3:00
George_George3-Jun-08 3:00 
GeneralRe: float calculation issue (decimal is no solution) Pin
The Nightcoder3-Jun-08 3:37
The Nightcoder3-Jun-08 3:37 
GeneralRe: float calculation issue (decimal is no solution) Pin
George_George3-Jun-08 21:53
George_George3-Jun-08 21:53 
GeneralRe: float calculation issue (decimal is no solution) Pin
The Nightcoder4-Jun-08 3:04
The Nightcoder4-Jun-08 3:04 
GeneralRe: float calculation issue (decimal is no solution) Pin
George_George4-Jun-08 22:22
George_George4-Jun-08 22:22 
GeneralRe: float calculation issue (decimal is no solution) Pin
The Nightcoder4-Jun-08 23:01
The Nightcoder4-Jun-08 23:01 
GeneralRe: float calculation issue (decimal is no solution) Pin
George_George4-Jun-08 23:27
George_George4-Jun-08 23:27 
GeneralRe: float calculation issue (decimal is no solution) Pin
The Nightcoder5-Jun-08 4:01
The Nightcoder5-Jun-08 4:01 
GeneralRe: float calculation issue (decimal is no solution) Pin
George_George5-Jun-08 14:48
George_George5-Jun-08 14:48 
QuestionThreadpool Synchronization causing out of memory error Pin
sumathi pandarinathan26-May-08 0:12
sumathi pandarinathan26-May-08 0:12 
AnswerRe: Threadpool Synchronization causing out of memory error Pin
leppie26-May-08 4:03
leppie26-May-08 4:03 
GeneralRe: Threadpool Synchronization causing out of memory error Pin
sumathi pandarinathan26-May-08 21:09
sumathi pandarinathan26-May-08 21:09 
Questionfolderbrowserdialog Pin
huotari25-May-08 23:57
huotari25-May-08 23:57 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.