public static double RoundAwayFromZero(double value) {
#if !SILVERLIGHT
return Math.Round(value, MidpointRounding.AwayFromZero);
#else
if (value < 0) {
return -RoundAwayFromZero(-value);
}
// we can assume positive value
double result = Math.Floor(value);
if (value - result >= 0.5) {
result += 1.0;
}
return result;
#endif
}