我想明白爲什麼升壓::格式提供了比圓形
double nbr = 102262.5;
boost::format("%.0f") % nbr;
給102262
而round(102262.5)
給102263.0
如果我們再看另一個例子價值34087.5
boost::format("%.0f") % nbr
給出不同的結果34088
和round(34087.5)
給出相同的34088
這是否意味着圓實現了一個更復雜的算法,以確保最接近的while格式或printf不?
你用'round(nbr)'得到了什麼?不同的是不一樣的。 –
當使用文字值時,我得到與round(nbr)相同的結果。 – Bing
你是指'std :: round'還是'boost :: round'?無論如何,他們都使用相同的四捨五入,這使得更令人驚訝的是'boost :: format'的工作方式不同 – user463035818