我试图将一个单位转换为另一个单位。但是当我输入一个值时,代码会将值指定为double但仍然输出整数。我想要一个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。我想要有5位精度,如:1.47058。有可能在c sharp ??
答案 0 :(得分:2)
9 / 5
被视为值是两个整数。这意味着结果是1
(在向下舍入1.8
之后)。您可以改为使用1.8
。
答案 1 :(得分:2)
9 / 5
是整数表达式,结果1是。你可以将1转换为double,但是1作为double仍然是1。
您需要使用以下任一项将表达式更改为浮点数:
9.0 / 5.0
或者
(double)9 / (double)5
答案 2 :(得分:0)
你的转换乘数是错误的,并且你想确保它使用Double值而不是整数:
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。将温度提高到小数点后五位是不太现实的。