可能重複:
Leave only two decimal places after the dot
Formatting a float to 2 decimal places修剪浮動
如果我有包括像153.2154879的浮動,有沒有辦法把它轉換爲字符串,但只顯示4位小數?我知道我可以使用"000.000"
來格式化它,但前面的數字不一定總是3位數。那麼有沒有辦法顯示所有前面的數字(153),但只有字符串中的前4個字符?
可能重複:
Leave only two decimal places after the dot
Formatting a float to 2 decimal places修剪浮動
如果我有包括像153.2154879的浮動,有沒有辦法把它轉換爲字符串,但只顯示4位小數?我知道我可以使用"000.000"
來格式化它,但前面的數字不一定總是3位數。那麼有沒有辦法顯示所有前面的數字(153),但只有字符串中的前4個字符?
我通常使用像"#0.0000"
這樣的格式字符串。
所以'#'只是表示顯示所有的字符?從來不知道這個謝謝! – TheGateKeeper 2012-04-17 18:06:21
-1。將一個float轉換爲字符串,然後返回float以僅僅將它舍入**無效。 – Aliostad 2012-04-17 18:28:28
你爲什麼要在每個人面前低估一下Aliostad?我清楚地表明我想顯示4位小數,我從來沒有說過我想整理它並將其轉換回浮動狀態! – TheGateKeeper 2012-04-17 18:32:55
像這樣的東西應該做的:
your_number.ToString("0.####");
這將顯示小數點後4位A最大。
您可以使用C#函數Math.Round函數。
float a= 153.213456;
Math.Round(a,3);
這將數四捨五入到153.213 然後把它轉換爲字符串。
字符串格式代碼將再次舍入數字;沒有理由先調用Math.Round。 – phoog 2012-04-17 18:23:21
@phoog你的意思是你將浮點數轉換爲字符串,然後轉換回浮點數,而不是使用爲浮點數設計的圓? – Aliostad 2012-04-17 18:27:43
@Aliostad當然不是!問題是關於*顯示*具有給定小數點數的浮點數,這意味着*將其轉換爲具有該小數點數的字符串*。我的意思是說*爲了顯示數字的格式而使用'Round'效率低下*如果要求在IEEE單一二進制格式中有一個四捨五入的「float」,爲了存儲或計算,當然你應該使用'Round'。 – phoog 2012-04-17 18:41:10
可能的重複:http://stackoverflow.com/q/1291483/962091 – zackdever 2012-04-17 18:10:05