double
- это число с плавающей точкой двойной точности IEEE-754. Он всегда имеет точность 53 бита. Он не имеет точности, которая может быть точно представлена в «десятичных разрядах» - как следует из фразы, «десятичные разряды» измеряют только точность относительно системы счисления с основанием 10.
Если вам нужно просто изменить точность, то значение отображается , тогда вы можете использовать одну из ToString()
перегрузок, чтобы сделать это, как указывают другие ответы.
Помните также, что double
является приближением непрерывного реального значения; то есть значение, при котором нет подразумеваемого дискретного квантования (хотя значения фактически квантованы до 53 битов). Если вы пытаетесь представить дискретное значение , где существует неявное квантование (например, если вы работаете со значениями в валюте, где существует значительная разница между 0,1 и 0,099999999999999), тогда вам следует вероятно, используется тип данных, основанный на целочисленной семантике - либо представление с фиксированной точкой, использующее масштабированное целое число, либо что-то типа .NET decimal
.