双变量的精度
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。把温度精确到小数点后五位是不太现实的。
我正在尝试将一个单位转换为另一个单位。但是当我输入一个值时,代码将值分配为双精度但仍输出整数。我想要一个 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。把温度精确到小数点后五位是不太现实的。