C#中DOUBLE转换的问题

如4294276891一个double值 ,要转成-690405 应该要怎么写程序 ?
delphi 中以下代码是可以的
inttostr 括号integer trunc(d);
请问在C# 中应该要怎么处理

double d = 4294276891;
float f = (float)d;
int i = (int)Math.Truncate(d);
string str = i.ToString();
Console.WriteLine("is{0}",str);
这里显示出来的是-2147483648 正常应该是-690405 ,请问我哪里弄错了,在DELPHI中是可以的