[英]ERROR Decimal Number VB.NET
由於某種原因,它不起作用。
Imports System.Math
Public Class Form1
Dim TheWholeNumber As Double
Dim TheRoundedNumber As Double
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'The Whole Number.
TheWholeNumber = Math.Truncate(Val(Tx_TheNumber.Text))
Tx_TheWholeNumber.Text = TheWholeNumber.ToString
'The Decimal Number
Tx_TheDecimalNumber.Text = (Val(Tx_TheNumber.Text).ToString - Val(Tx_TheWholeNumber.Text)).ToString
因此,我在Tx_TheNumber文本框中輸入9876543210.0123456789。
在Tx_TheWholeNumber TextBox中給我截斷的數字沒有問題。 它在Tx_TheDecimalNumber文本框中顯示'9876543210。
但問題是:Tx_TheDecimalNumber.Text顯示0.0123405456542969
我喜歡..哇嗎? 從整數中減去整數有多難..那就是你給我的..?
它是整數減去小數點后第一個數字的數字,即Tx_TheNumber。 老實說,我不知道發生了什么,如果您這樣做,結果將是小數點后的數字。
Math.Truncate是雙精度型。 Decimal.Truncate是十進制。 所以..有人可以幫我嗎? 我不知道我在做什么錯。
Val(Tx_TheTextBox.Text)將字符串轉換為Double。 我經常使用。 當我計算東西時,Val永遠不會給我錯誤答案。 我用它建立了歐姆定律計算器,我的數字與在線歐姆定律計算器匹配。 所以..
您的問題是,您使用的Val
返回的是Double
而不是Decimal
浮點算法,這本身就容易出錯。
解決方案? 強制轉換為十進制數據類型並減去以下值:
使用十進制數據類型
Dim TheWholeNumber As Decimal
Dim TheRoundedNumber As Decimal
轉換為十進制而不是使用Val
'The Whole Number.
TheWholeNumber = Math.Truncate(CDec(Tx_TheNumber.Text))
Tx_TheWholeNumber.Text = TheWholeNumber.ToString
'The Decimal Number
Tx_TheDecimalNumber.Text = (CDec(Tx_TheNumber.Text) - CDec(Tx_TheWholeNumber.Text)).ToString
注意:您還通過將數字數據類型轉換為字符串並使用它減去來引入問題。 使用Option Strict On
將防止編譯這些類型的錯誤,因此您應該使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.