Moja rada: przestań używać double
na pierwszym miejscu. Jeśli potrzebujesz zaokrąglenia dziesiętnego, wtedy szanse są dobre, powinieneś używać decimal
. Jaka jest twoja aplikacja?
Jeśli masz podwójne, można zrobić to tak:
double r = whatever;
decimal d = (decimal)r;
decimal truncated = decimal.Truncate(d * 100m)/100m;
Należy zauważyć, że technika ta nie powiedzie się, jeśli wartość bezwzględna podwójnego jest większa niż 792281625142643375935439504, ponieważ mnożenie przez 100 zawiedzie . Jeśli potrzebujesz obsługiwać wartości, które są duże, musisz użyć specjalnych technik. (Oczywiście, do czasu podwójny jest tak duży, jesteś daleko poza jego zdolności do reprezentowania wartości z dwóch cyfr po przecinku miejsce w każdym razie.)
Jeśli jesteś robisz pracę w * dziesiętnej * następnie, dlaczego używasz * podwójnego *, kiedy możesz używać * dziesiętnego *? –
Możesz przejść do tego posta i znaleźć to, co Ci pasuje http://how-to-code-net.blogspot.ro/2012/09/how-to-format-number-to-x-decimal.html –