删除double中的最后一个十进制值

时间:2015-09-23 12:30:06

标签: c# math calculator

我正在用C#制作一个计算器。 我将用户的输入保存为double。

我使用以下代码删除最后输入的数字,并带有小数字。

i = (i - (i % 10)) / 10;

这将删除最后一个号码。

12345将成为1234


我能想象的是如何使十进制值发生这种情况。

2134.765必须变为2134.76

我的程序使用var来查看是否放入了一个点,所以我只需要数学来删除最后一个数字。

3 个答案:

答案 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);