如何将结果显示为十进制



这是家庭作业问题:

编写一个计算速度的程序:计算距离(以米为单位(和时间(以小时、分钟、秒为三个数字(,计算速度(以米每秒、公里每小时和英里每小时为单位((提示:1英里=1609米(。将结果打印到控制台。

这是我的代码:

int distanceInMeters, hours, minutes, seconds;
Console.WriteLine("Please type distance in meters: ");
distanceInMeters = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please type time in hours: ");
hours = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please type time in minutes: ");
minutes = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please type time in seconds: ");
seconds = Convert.ToInt32(Console.ReadLine());
int metersSecond, kmH, milesH;
metersSecond = distanceInMeters / ((hours * 3600) + (minutes * 60) + seconds);
kmH = (distanceInMeters / 1000) / (hours + (minutes / 60) + (seconds / 3600));
milesH = (distanceInMeters / 1609) / (hours + (minutes / 60) + (seconds / 3600));
Console.WriteLine("Your speed in meters/seconds is: " + metersSecond);
Console.WriteLine("Please speed in km/h is: " + kmH);
Console.WriteLine("Please speed in miles/h is: " + milesH);

以下计算中的所有变量:

metersSecond = distanceInMeters / ((hours * 3600) + (minutes * 60) + seconds);

类型为int(整数(。因此,小数位数将被截断。你可以通过以下操作来解决这个问题:

metersSecond = 1.0 * distanceInMeters / ((hours * 3600.0) + (minutes * 60.0) + seconds)

metersSecond也应该声明为double、float或decimal类型,这些类型支持所需的小数位数。

只需将任何变量强制转换为decimal,比如distanceInMeters,并对输出变量使用decimal数据类型。

distanceInMeters = Decimal.Parse(Console.ReadLine());

您的输出将自动采用十进制格式。如果您想要一定的精度,您可以round数字。

最新更新