如何更改號碼的精度,例如:float n = 1.2345
並將其存回變量'n'並將其更改爲1.23
?更改號碼精度
更改號碼精度
回答
float n = 1.2345;
int scaled = n * 100
n = static_cast<float>(scaled)/100.0;
或一條線:
n = static_cast<float>(static_cast<int>(n*100))/100;
我也有類似的問題[這裏](http://stackoverflow.com/questions/35258164/how-to-prevent-numbers-from-showing-up-in-scientific-notations)如果可能,你可以幫助我出去了? – user1950349 2016-02-14 17:05:17
#include <cmath>
n = roundf(n * 100.0f)/100.0f;
,或者如果您需要截斷而不是圓:
n = truncf(n * 100.0f)/100.0f;
只需要注意一點:這會舍入浮點數而不是截斷它,這可能是也可能不是Dave18正在尋找的。 – 2010-06-18 13:43:02
@Bill:的確 - 我正在更新它,以便在您添加評論的同時包含截斷的可能性。 ;-) – 2010-06-18 13:47:12
float truncated = static_cast<int>(n * 100)/100.0f
應該工作。
看一看這個問題:
Rounding Number to 2 Decimal Places in C
然而,在C++中,如果你需要把一個數字顯示目的,我不會使用printf
,但使用流操作符:
using namespace std;
cout << setiosflags(ios::fixed) << setprecision(2);
cout << n;
奇怪的是,這是downvoted,當它是唯一的答案提及顯示的目的,這可能是OP的用例! +1。 – Cascabel 2010-06-18 13:50:47
@Jefromi:是的,不知道爲什麼這是downvoted。我希望downvoter會做出解釋。 Thx爲upvoting! – 2010-06-18 14:01:04
- 1. 更改Oracle中的號碼精度
- 2. Sass號碼精度和webpack
- 3. Android更改位置精度
- 4. 更改浮點型精度
- 5. 向BigDecimal號碼加1的精度?
- 6. Android更改號碼爲主號碼
- 7. 如何將Mapbox Polyline解碼精度更改爲5?
- 8. 需要更改浮點精度
- 9. 根據等級更改精靈難度
- 10. PostgreSQL - 更改數字的精度?
- 11. 如何更改座標精度
- 12. 如何更改Grails中BigDecimal的精度
- 13. 如何更改stl的打印精度?
- 14. Corona SDK動態更改精靈速度
- 15. 更改精度值,並使用Tensorflow
- 16. 雙精度括號用C
- 17. 月份更改號碼
- 18. 更改號碼的問題
- 19. 中等更改號碼
- 20. 更改號碼(ctypes的)
- 21. JQuery動態更改號碼
- 22. SSIS加載列號(精度,標度)
- 23. sklearn DecisionTreeClassifier更深度精度更低?
- 24. 如何將進度條的值更改爲雙精度?
- 25. 改變時鐘的精度
- 26. _controlfp不改變精度
- 27. Keras精度不會改變
- 28. 更新號碼:調度客戶端時eventmodel改變
- 29. MATLAB編碼器精度
- 30. 更改跨度的內容編號
這聽起來像也許你問如何將數字舍入?你會發現很多以前的問題,如果你搜索。 – Cascabel 2010-06-18 13:28:15
你想整理數字或截斷它們嗎?當n = 1.246時會發生什麼? – 2010-06-18 13:33:21
是的,截斷數字並將其放回變量'n'。 – cpx 2010-06-18 13:33:56