我已經老了PASCAL代碼帕斯卡到C:TRUNC
var i : longint;
m : double;
begin
.....
i := trunc(m);
我必須把它轉換爲C++代碼。
這裏有一個明顯的一點就是寫
double m;
int i;
.....
i = static_cast<int>(std::trunc(m));
但這裏的問題比帕斯卡TRUNC返回整數
function trunc(
d: ValReal
):Int64;
而C++的TRUNC返回一倍。 是否有可能,例如trunc(2.3)將返回1.999999999999 和static_cast將使它1而不是2?如果是,是否正確使用不帶trunc的static_cast來獲取相同的pascal行爲?
i = static_cast<int>(m);
聽起來更像'round()'? – trojanfoe
round返回最接近的整數。在帕斯卡爾我trunc – ArmanHunanyan