双变量的精度

Precision for double variables

我正在尝试将一个单位转换为另一个单位。但是当我输入一个值时,代码将值分配为双精度但仍输出整数。我想要一个 5 位数的精度,例如数字 12.53527 作为输出。以下代码有什么问题?:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Program1
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.Write("Fahrenheit = ");//
            string x_str = Console.ReadLine();


            double celsius = (Convert.ToDouble(x_str) - 32) * (9 / 5);
            Console.Write("Celcius = " + celsius + "\n");

            Console.Write("Enter to terminate");
            Console.ReadLine();

        }
    }
}

编辑:伙计们,我会重复这个问题,请拿一个计算器将 100 除以 68,即 100/68。结果计算器显示 1.4705882352941176470588235294118。在你的建议中,我得到 1.40000 或 1.4。我希望 o 具有 5 位精度,例如:1.47058。可以升c吗??

9 / 5 被视为两个整数。这意味着结果是 1(在向下舍入 1.8 之后)。您可以改用 1.8

9 / 5是整数表达式,结果1是。您可以将 1 转换为双精度数,但作为双精度数的 1 仍然是 1。

您需要使用以下任一方法将表达式更改为浮点数:

9.0 / 5.0

或者

(double)9 / (double)5

您的转化乘数设置错误,您希望确保它使用双精度值而不是整数:

double celsius = (Convert.ToDouble(x_str) - 32.0) * (5.0 / 9.0);

要将数字强制转换为具有特定小数位数的字符串,您可以像这样使用 .ToString()

Console.Write("Celcius = " + celsius.ToString("0.00000") + "\n");

有关格式字符串的更多信息:Custom Numeric Format Strings

P.S。把温度精确到小数点后五位是不太现实的。