VB总薪酬计算

时间:2013-01-18 04:30:34

标签: vb.net

我要做的就是创建一个简单的付费计算器。用户键入其baseSalary,totalSales和commissionRate。程序运行得很好,但是totalPay没有正常运行。任何帮助都是极好的。这很可能只是一个简单的修复,但因为这只是我VB类的第二天,所以我无法解决这个问题。提前感谢您提供任何帮助!

'   Total Pay Calculator
'   By: Jeremy Flaugher
'   01/17/2013


Module myPay
    Sub Main()
        '   Declare the variables
        Dim baseSalary As Integer
        Dim totalSales As Integer
        Dim commissionRate As Decimal
        Dim totalPay As Integer

        '   Title and By line
        Console.Out.WriteLine("Welcome to the Paycheck Calculator")
        Console.Out.WriteLine("Created by Jeremy Flaugher" & vbCrLf)

        '   User Prompts
        Console.Out.Write("Please enter your Base Salary: $")
        baseSalary = Console.In.ReadLine()

        Console.Out.Write("Please enter your number of sales: ")
        totalSales = Console.In.ReadLine()

        Console.Out.Write("Please enter your Commission Rate in decimal form: ")
        commissionRate = Console.In.ReadLine()

        '   Processes
        totalPay = (totalSales * commissionRate) + baseSalary
        Console.Out.WriteLine("Your paycheck will total: " & (FormatCurrency(totalPay)))
        Console.ReadKey()
    End Sub
End Module

我在运行程序后检查计算器上的输出。假设我输入100美元作为基本工资,5作为销售数量,和.5作为佣金率。在计算器上,我得到的总薪水是102.5美元,但运行程序的时候我得到的是102.00美元。我该如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

首先,我会将Option Strict On放在您的模块顶部,这是一个很好的做法,可以帮助您解决为什么事情不正确。在您的情况下,我相信您的问题是您使用小数作为计算的一部分,但您将结果放入整数。尝试将totalPay声明为十进制。

从上面链接使用Option Strict的好处:

  

将Option Strict设置为On时,Visual Basic会检查是否为所有编程元素指定了数据类型。可以显式指定数据类型,也可以使用本地类型推断指定数据类型。建议为所有编程元素指定数据类型,原因如下:

  • 它支持IntelliSense支持您的变量和参数。 这使您可以像您一样查看其属性和其他成员 类型代码。
  • •它使编译器能够执行类型检查。类型检查 帮助您查找因类型而在运行时失败的语句 转换错误。它还标识对对象方法的调用 不支持这些方法的。
  • •它加快了代码的执行速度。其中一个原因是,如果 您没有为编程元素指定数据类型,即Visual 基本编译器为其指定Object类型。编译后的代码可能有 在Object和其他数据类型之间来回转换 降低性能。