vb.net - 将字符串转换为双精度并添加总计
问题描述
我对编码比较陌生。我试图弄清楚为什么我每天的小时数没有转换为然后加在一起的数字。取而代之的是,他们只是将这些字符串写成字符串并产生巨大的数字。
例如:如果我每天工作 8 小时 MF,它会显示 88888 而不是 40(一周总共 40 小时)。我确实将字符串转换为双精度,然后将它们加在一起。
任何帮助表示赞赏。周末我没有老师可以请教。
Public Class Form1
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
' Get file
Dim srdFile As System.IO.StreamReader
srdFile = New System.IO.StreamReader("payroll.txt")
' Declarations
Dim strLine, strRecord() As String
Dim strFirst As String
Dim strLast As String
Dim strPayRate As String
Dim strMon As String
Dim strTues As String
Dim strWed As String
Dim strThurs As String
Dim strFri As String
Dim dblTotalHours As Double
Dim dblTotalPay As Double
Dim dblGrandTotalPay As Double
Do Until srdFile.Peek = -1
' Read
strLine = srdFile.ReadLine
strRecord = strLine.Split(",")
strFirst = strRecord(0)
strLast = strRecord(1)
strPayRate = Convert.ToDouble(strRecord(2))
strMon = Convert.ToDouble(strRecord(3))
strTues = Convert.ToDouble(strRecord(4))
strWed = Convert.ToDouble(strRecord(5))
strThurs = Convert.ToDouble(strRecord(6))
strFri = Convert.ToDouble(strRecord(7))
' Processing
dblTotalHours = strMon + strTues + strWed + strThurs + strFri
dblTotalPay = dblTotalHours * strPayRate
dblGrandTotalPay += dblTotalPay
' Output
rtbOut.AppendText(strFirst & " " & strLast & ControlChars.Tab & "rate: $" & strPayRate.ToString & ControlChars.Tab & "hours: " & dblTotalHours.ToString("n") & ControlChars.Tab & "pay: " &
dblTotalPay.ToString("c") & vbNewLine & "Total Pay: " & dblGrandTotalPay.ToString("c") & vbNewLine)
Loop
End Sub
End Class
解决方案
因为您的变量被定义为字符串,所以此代码将这些值连接起来:
strMon + strTues + strWed + strThurs + strFri
在 VB.Net 中,您可以使用 + 或 & 进行连接
将这些变量转换为双精度数据类型(以保留小数部分):
Dim strMon As Double
Dim strTues As Double
Dim strWed As Double
Dim strThurs As Double
Dim strFri As Double
然后 + 运算符会将变量加在一起。
推荐阅读
- c - C语言中红黑树的简单结构定义
- javascript - 无论如何要检查 vue.js 中是否存在 $parent
- c - 字符串上的 fscanf 导致分段错误
- python - 无法在 ubuntu 中使用 pip3 为 django 安装 mysqlclient
- html - 内容属性不继承 CSS 类
- visual-studio - 如何在 Visual Studio 代码中显示底边栏
- php - Laravel 雄辩的顺序由数百个第一个而不是最后一个
- arrays - 如果在 React 中同时选择了 Stadium & Mymatches 过滤器,如何一起应用?
- windows - 无法在 Windows 2008 R2 上加载任何驱动程序,VS 2019 中的示例项目导致即时蓝屏
- python - 使用用户代理来防止验证码并启用 javascript