Да это неподходящее.
Если я правильно помню, что double имеет около 17 значащих чисел, то обычно ошибки округления будут значительно отставать от десятичной точки. Большинство финансовых программ использует 4 десятичных знака за десятичной точкой, что позволяет работать с 13 десятичными знаками, поэтому максимальное число, с которым вы можете работать для отдельных операций, по-прежнему намного выше, чем государственный долг США. Но ошибки округления будут складываться со временем. Если ваше программное обеспечение работает в течение длительного времени, вы в конечном итоге начнете проигрывать центы. Определенные операции сделают это хуже. Например, добавление больших количеств в небольшие количества приведет к значительной потере точности.
Вам нужны типы данные с фиксированной точкой для денежных операций, большинство людей не возражают, если вы потеряете ни цент здесь и там, но бухгалтеры не так, как большинство людей ..
редактировать
Согласно этому сайту http://msdn.microsoft.com/en-us/library/678hzkk9.aspx У парного разряда на самом деле есть от 15 до 16 значащих цифр вместо 17.
@ Jon Skeet decimal более подходит, чем двойной, из-за его высокой точности, 28 или 29 значащих десятичных знаков. Это означает, что становится меньше шансов на накопление ошибок округления. Фиксированные точечные типы данных (т. Е. Целые числа, которые представляют центы или 100-й процент, как я видел, используются), как упоминания Boojum, на самом деле лучше подходят.
[Почему бы не использовать Double или Float для представления валюты?] (Http://stackoverflow.com/q/3730019/995714) –