讨论:关于强制类型转换
lyyrw 2003-12-19 11:03:51 程序如下:
AnsiString a;
a = "800000";
Edit1->Text = AnsiString( (int) ( a.ToDouble() / 1000 ) );
Edit2->Text = AnsiString( (int) ( a.ToDouble() ) / 1000 );
a = "800001";
Edit3->Text = AnsiString( (int) ( a.ToDouble() / 1000 ) );
Edit4->Text = AnsiString( (int) ( a.ToDouble() ) / 1000 );
Edit1中的结果是799,而Edit2中的结果是800。问题应出在
(int) ( a.ToDouble() / 1000 ) );与
(int) ( a.ToDouble() )/ 1000 );的区别
可是Edit3和Edit4的结果相同
计算1000的倍数的不到正确的结果,反而不是1000的倍数得到了正确的结果?
搞不懂,大家讨论讨论?