我正在用C#制作一个计算器。 我将用户的输入保存为double。
我使用以下代码删除最后输入的数字,并带有小数字。
i = (i - (i % 10)) / 10;
这将删除最后一个号码。
12345将成为1234
我能想象的是如何使十进制值发生这种情况。
2134.765必须变为2134.76
我的程序使用var来查看是否放入了一个点,所以我只需要数学来删除最后一个数字。
答案 0 :(得分:3)
由于您正在处理字符输入而不是 math ,只需将输入保存为字符串,直到您需要对其执行操作为止< / em>的。然后删除最后一个字符就像
一样简单input = input.Substring(0,input.Length-1);
否则你必须处理不明确的情况,如:
答案 1 :(得分:0)
最简单的方法可能是使用您自己的数字格式 - 您仍然希望保留十进制值。 double
是一个可怕的选择。至少,请使用decimal
,以便您保证数字的十进制表示。
答案 2 :(得分:0)
如果你真的总是只想删除数字中的最后一位数字,我会使用一个技巧并将数字转换为字符串删除最后一个字符并返回。
var number = 123,456;
var strNumber = number;
strNumber.Remove(strNumber.Length - 1);
number = double.parse(strNumber);