У меня есть этот крошечный фрагмент кода
double s = -2.6114289999999998;
double s7 = Math.Round(s, 7);
double s5 = Math.Round(s, 5);
double s6 = Math.Round(s, 6);
С платформой = любой процессор, я получаю
s7: -2.611429
s5: -2.61143
s6: -2.611429
С платформой = x64 я получаю
s7: -2.6114289999999998
s5: -2.61143
s6: -2.6114289999999998
Почему? (Результат скопирован из окна VS Locals)
Весь фрагмент кода:
private void btnAlign_Click(object sender, EventArgs e)
{
double s = -2.6114289999999998;
double s7 = Math.Round(s, 7);
double s5 = Math.Round(s, 5);
double s6 = Math.Round(s, 6);
}