无法在 C# 中计算 Long 数据类型

Cannot calculate Long Data type in C#

我不知道为什么输出为 0。请帮我找出我在 C# 中更正长数据类型计算的错误。为了使它更容易,我几乎所有的变量都在 long 中,但即便如此,代码也没有按预期工作。

        long data_user;
        long GB;
        long MB;
        long kB;
        long bits;
        long bits_rem;
        double giga_C;
        double mega_c;
        double kilo_C;
        double byte_C;
        double sub_tot;

        Console.Write("\nEnter the number of bytes used: ");
        data_used = Console.Read();

        //Divide data into each units.
        GB = data_user / 1073741824; 
        giga_C = Convert.ToDouble(15.00 * GB);

        MB = bits_rem / 1045214;
        mega_C = (6.05 * MB);                  

        kB = bits_rem / 10002;
        kilo_C = (3.50 * kB);  

        bits = bits_rem / 0.1;
        bits_C = (0.01 * bits);                     

        sub_tot = (giga_C + mega_C + kilo_C + byte_C);

Console.Read 从控制台读取下一个字符,因此您总是得到较小的数字除以较大的数字(在 整数 算术中为零)。例如,您写 1234,但 Console.Read returns 49 因为 '1' 的 Unicode 点是 49。然后你尝试用 49 除以 1073741824 显然得到 0.

您需要读取您的值如下Convert.ToInt64(Console.ReadLine())