有一个编程错误
本文关键字:错误 编程 有一个 | 更新日期: 2023-09-27 18:16:53
Console.WriteLine("Please enter a number");
int num = int.Parse(Console.ReadLine());
int num1 = int.Parse(Math.Floor(num));
int num3 = int.Parse(num - num1);
Console.Write("shekel: ");
Console.WriteLine(num1);
Console.Write("agorot: ");
Console.WriteLine(num3);
我在第3行得到一个错误:
项目文件行错误CS0121呼叫是以下方法或属性之间存在歧义:'Math.Floor(decimal)'和'Math.Floor(double) '
第4行:
项目文件行错误CS1503参数1:无法从'int'转换为'string'
我应该编写一个程序,接收一个数字(比如10.22),然后在一条消息中,然后在另一条消息中,说什么是十进制数,什么是点后面的数字。
我做错了什么?
你应该这样做:
decimal number = Decimal.parse(Console.ReadLine());
int numberInteger = int.Parse(Math.Floor(number));
decimal numberAfterDot = number - numberInteger;
还要记住,有些数字是这样写的:10.22,有些数字是这样写的:10,22
首先,如果您想要一个十进制(数学)数字,为什么要将其解析为int
?你想要解析为十进制/双精度/浮点数(它们是不同的,参见这个问题),但我还是会使用double
。
你可以这样做:
Console.WriteLine("Please enter a number");
decimal num = decimal.Parse(Console.ReadLine());
decimal firstPart = Math.Truncate(num);
decimal secondPart = num - firstPart;
Console.Write("shekel: ");
Console.WriteLine(firstPart);
Console.Write("agorot: ");
Console.WriteLine(secondPart);
如果想去掉secondPart
中的积分0,可以将其转换为字符串并切片