VB.Net计算器错误的价值

时间:2012-08-16 02:31:51

标签: .net vb.net console-application

我在VB.Net上编写一个代码,要求用户输入两个数字,控制台程序将输出两个数字的加法。但我不知道为什么,当我运行程序时,输入的数字的返回值和答案是完全错误的。

这是代码:

模块模块1

Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0
    Console.Write("Write a number: ")
    a = Console.Read()
    Console.ReadLine()
    Console.Write("Write the second number:")
    b = Console.Read()
    c = a + b
    Console.ReadLine()
    Console.Write("Answer:")
    Console.WriteLine(a & "+" & b & "=" & c)
    Console.Read()
End Sub

结束模块

因此,当我运行程序时,就会发生这种情况:

写一个数字:5 写下第二个数字:3 答案:53 + 51 = 104

正如你可以看到返回值是完全错误的,我尝试了许多其他数字,但返回值仍然是错误的,我有点混乱。如果你绅士可以帮助我,那将非常感谢你。

3 个答案:

答案 0 :(得分:3)

Console.Read()返回一个与输入字符的字符代码对应的整数。您假设您输入的数据被解释为十进制数字文字,但这是不正确的。

您实际想要设置的ab等于:

Convert.ToInt32(Convert.ToChar(Console.Read()).ToString())

答案 1 :(得分:2)

你正在混淆

中的类型
Console.WriteLine(a & "+" & b & "=" & c)

线。

53是字符串“5”的数字表示,51是“3”的相同。

如果您要将输入更改为5和5;它会打印出来。

53 + 53 = 106

作为一个有趣的实验,看看当你按下字母'a'而不是数字时会发生什么。

编辑:

请参阅Smartcavemans答案,了解正确的语法以解决您的问题。

答案 2 :(得分:0)

试试这个:

Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0

    Console.Write("Write a number: ")
    a = Convert.ToInt32(Console.ReadLine())

    Console.Write("Write the second number:")
    b = Convert.ToInt32(Console.ReadLine())

    c = a + b

    Console.Write("Answer:")
    Console.WriteLine("{0} + {1} = {2}", a, b, c)

    Console.ReadLine
End Sub

注意:如果输入任何不是有效整数的内容,则可能会抛出异常。