頁:
[1]
vb.net 兩個有小數點數值相乘,為何會變整數?
本帖最後由 terrypen 於 2014-9-11 11:31 PM 編輯請教各位先進~我在datagridview做數值相乘運算,為什麼有小數點的數值相乘,出來會變整數,我看了MSDN還是一頭霧水,可否為小弟解惑一下,該如何進行運算才好~~謝謝!
Dim iLong as Decimal
Dim iWide as Decimal
Dim iQuantity as Decimal
iLong = CInt(DataGridView1.Rows(e.RowIndex).Cells("dgvLong").Value) '例如:iLong = 10.2
iWide = CInt(DataGridView1.Rows(e.RowIndex).Cells("dgvWide").Value) '例如:iWide = 5.4
iQuantity = iLong * iWide
DataGridView1.Rows(e.RowIndex).Cells("dgvQuantity").Value = iQuantity.ToString '值應該 = 55.08, 結果為整數
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 因為
iLong = CInt(...)
iWide = CInt(...)
這個追蹤一下流程跟變數內容, 一下子就有結果了吧!?
http://msdn.microsoft.com/zh-tw/library/s2dy91zy.aspx
CInt
Integer 資料類型 (Visual Basic)
-2,147,483,648 至 2,147,483,647;小數部分會捨入。1 CInt ---> IntiLong = Int(DataGridView1.Rows(e.RowIndex).Cells("dgvLong").Value)
iWide = Int(DataGridView1.Rows(e.RowIndex).Cells("dgvWide").Value) 謝謝各位先進的解說~~我瞭解了~~我再仔細研究一下~~謝謝^^ 因為是承接的變數定義的問題,INT 是整數,還有你的顯示的FORMAT也要做個定義哦!
<br><br><br><br><br><div></div> Dim iLong as Decimal
Dim iWide as Decimal
Dim iQuantity as Decimal
iLong = CInt(DataGridView1.Rows(e.RowIndex).Cells("dgvLong").Value) '例如:iLong = 10.2把中斷點設定在iLong,debug執行到這一步,你看一下iLong這個變數
你用CInt去轉整數了,所以10.2會變成10
把CInt拿掉,你再從中斷去看,iLong就是10.2了
變數iWide,也是以此類推
謝謝各位先進詳細的解說~~我大概明白了~~謝謝~~
頁:
[1]