我正在嘗試將值四舍五入到小數點后兩位。但問題是 0 秒沒有出現,它只在一位后顯示小數。
我已從 oracle db 獲取資料為 180.700,但在從 db 獲取資料時,系結后資料表中僅顯示 180.7
using (OracleConnection con = new OracleConnection(constr_ipdmdm))
{
using (OracleCommand cmd = new OracleCommand(query))
{
using (OracleDataAdapter sda = new OracleDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
}
}
}
}
在將其四舍五入到小數點后兩位時,它只顯示小數點后的一個值,即 180.7
Math.Round(Convert.ToDecimal(dt_spec.Rows[2]["YS"]), 2)
我們如何在資料表中系結它時顯示為 180.700,我們如何將它四舍五入兩位小數,即 180.70
任何想法將不勝感激。
uj5u.com熱心網友回復:
您可以讓 oracle 對其進行舍入和格式化
TO_CHAR(numbercolumn, 'FM999990D00')
這將轉換為 oracle 中的字串,因此您的 c# 應用程式將收到一個字串。如果您需要在 c# 中以數字方式使用它,您可以使用 oracle 來代替它
ROUND(numbercol, 2)
但是根據您的操作,最好保留精確的小數并使用它完成所有作業,然后在作業結束時對其進行格式化
calculatedResult.ToString("0.00")
$"{calculatedResult:0.00}"
string.Format("{0:0.00}", calculatedResult)
你不需要先 Math.Round 它。將 1.2355 格式化為“0.00”變為“1.24”
如果您在 Windows 表單 DataGridView 之類的東西中使用您的這個資料表,那么格式化資料是網格的作業,而不是您將其更改為字串。看看類似的東西
TheDgv.Columns[TheColumnIndex].DefaultCellStyle.Format = "0.00";
并確保資料表列中的資料是數字,而不是字串
uj5u.com熱心網友回復:
前言:我對C#一無所知。不過,我確實有一個邏輯建議!考慮將數字解釋/轉換為字串/字符陣列,并將一堆零連接到字串的末尾。然后,轉換回浮點數,并進行舍入。那里應該有另一個零。
我對正在使用的函式不是很熟悉,但是這種邏輯過去在其他語言中也有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/418276.html
標籤:
