【问题标题】:How to add number below 1 (decimal) onto the end of a number in c#如何在c#中将小于1(十进制)的数字添加到数字的末尾
【发布时间】:2015-04-24 16:36:08
【问题描述】:

您好,很抱歉标题不好,但这让我很困惑,我需要一些帮助。我正在用 C# 制作一个有 GUI 的计算器程序。为了使用 GUI,我需要通过一次单击一个数字来创建一个数字(如果这没有任何意义,这里是一个示例:人按 1,然后 2,计算器显示 12。方式我通过var[varIndex] = (var[varIndex] * 10) + 1 来实现这一点,如果按下的键是 1,其中 var 是输入的总数的数组。

所以我现在需要做的是在末尾附加一个小数,所以到目前为止我所做的是设置一个布尔值,如果选择了十进制按钮,则将所有数字按钮模式切换为十进制,所以现在我需要一个公式,将一个数字添加到小数点后(例如:Person 按 1 然后 . 然后 2 然后 5 他们将得到 1.25)但是我找不到这个公式!

所以我的问题是什么公式会在小数的末尾附加一个数字。

我是否必须对我的程序进行内脏处理并使其接收文本然后转换为数字?或者有公式吗?非常感谢,对糟糕的解释感到抱歉。

【问题讨论】:

  • 为什么不把它当作一个字符串,直到你准备好进行某种计算?
  • 我同意@Jonesy,您只需要确保他们没有添加“。”不止一次。
  • 我同意@Jonesy - 这应该是文本,直到您需要进行计算
  • @Jonesy 我应该这样做,但我不想破坏我已经拥有的所有代码,所以如果有解决方案那就太好了,但如果没有,我会这样做。

标签: c# math calculator


【解决方案1】:

正如 cmets 中提到的 Jonesy(和其他人),如果您将当前数字存储为字符串并附加字符,然后使用 Double.TryParse(..) 将其转换为数字,这会容易得多。

但是,如果您决定将其视为一个数字,则可以简单地按照以下方式进行操作:

var[varIndex] += enteredNumber / (10 * numEntriesSinceDecimal);

numEntriesSinceDecimal 将从 0 开始,并随着用户按下的每个按钮递增。

【讨论】:

  • 谢谢!我想我可能会按照琼斯所说的去做,因为这将使将来的工作更容易,但您的解决方案正是我需要的解决方案。一旦允许,我会接受你的回答。
  • 太棒了!当人们选择以正确的方式做事时,我总是很高兴,即使这需要更多的前期工作,而不是继续沿着阻力最小的道路前进。这样做似乎是一个好主意,但您几乎总是会最终将自己逼入最低限度,并在将来让自己的事情变得更加困难。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2017-03-31
  • 1970-01-01
相关资源
最近更新 更多