Tag: 数字

C#decimal,如何添加尾随零

我必须将尾随零添加到十进制值。 不仅用于显示(因此Format不是一个选项),而是在实际的底层数据中,因为小数精度在我们的应用程序中很重要。 我试过了: decimal value = 1M decimal withPrecision = value + 0.000M; 在许多情况下哪种方法效果很好……奇怪的是并非如此。 我调试了一个情况,其中withPrecision中的值仍然是1M,没有看到运行时的值和立即窗口中相同的硬编码值有任何差异。 我还使用decimal.GetBits来找到差异 – 没有。 我试过(这里提出调整小数精度,.net ): decimal value = 1M decimal withPrecision = value * 1.000M; 效果很好 – 除了案例值为零。 然后结果为0M,没有任何尾随零。 我也不相信解决方案,在其他情况下也可能不起作用。 目前我在: decimal value = 1M decimal withPrecision = (value * 1.000M) + 0.000M; 哪个适用于我目前发现的所有情况……但看起来也不值得信赖。 我也可以为零实现一个例外情况。 我认为Format和Parse会起作用。 我不喜欢它。 它看起来不是很快,我不明白为什么我必须将小数字放入一个字符串只是为了操纵它。 我开始相信这样一个简单的任务没有干净的解决方案。

一种在C#中编写大数字文字的方法

我有这样的方法: Prefix GetPrefix(decimal value) { if(value > 11000000000000000000) return Prefix.CosmicBig; if(value > 1000000000000000) return Prefix.ReallyBig; if(value > 3000000000000) return Prefix.Big; if(value > 50000000) return Prefix.Okay; if(value > 750000) return Prefix.MostlyNormal; if(value > 750000) return Prefix.SoSo; if(value > 750) return Prefix.Small; return Prefix.MiserablySmall; } 确切的值并不重要。 重要的是它们有时会被更改(前缀用于绘图,一些文本区域在开发中会改变大小)。 我正在寻找一种以一种方式来编写这些文字的方法,这种方式很容易被人类改变它,而不必计算所有的零。 分隔符会很好。 我想写11 * 1000 * 1000 * 1000 * […]

C#数字基类

我想写一个可以接受任何数字的C#方法。 就像是: public static T Sum(T a, T b) where T : number { // (not real code) return a + b; } 但我没有在C#中看到一个“数字”基类,就像我用过的大多数其他语言一样。 数值类型是IComparable,IFormattable,IConvertible,IComparable和IEquatable,但似乎没有任何算术function。 除了物体之外,它们都是结构,没有明显的共同超类。 (请原谅我,如果我搞砸了这里的意思,因为我不太熟悉C#结构,而且正是他们对类的所有方式都不太熟悉。) 我是否遗漏了某些内容,或者是否无法在C#中编写一个执行“a + b”的方法而没有在“+”的上下文中明确指出a和b是什么?

c#字符串以正则数字开头

我一直在寻找一下如何确定一个以数字开头的字符串。 我遇到了一个正则表达式声明’/ ^ \ d /’我可以确认是否以数字开头。 但是我似乎无法在下面的代码中使用它。 任何人都可以指出我在声明中出错的地方(Regex.Match(info,“/ ^ \ d /”))? 谢谢! //String attachbody is the attachment body from an email i read into a string string[] data = Regex.Split(attachbody, “\n”); foreach (String info in data) { if (Regex.Match(info,”/^\d/”)) { string[] tabbedHeaderData = Regex.Split(info, “\t”); TicketID = tabbedHeaderData[0].ToString(); Status = tabbedHeaderData[1].ToString(); URL = tabbedHeaderData[2].ToString(); […]

C#是否有内置函数将格式化的String转换回数字?

如何将格式化数字的字符串转换回数字? Decimal percent = 55.76; String strPercent = String.Format(“{0:0.0}%”, percent); Decimal dollars = 33.5; String strDollars = String.Format(“{0:C}”, dollars); 稍后说,我希望得到百分比和美元价值,作为数字。 使用C#和asp.net是否有任何内置方法可以做到这一点? 我知道我如何使用正则表达式和一个字符串函数,但我从http://msdn.microsoft.com/en-us/library/ks098hd7(vs.71).aspx读到了一个Decimal.Parse()函数。 是否有内置函数来执行此操作? 如果是,我该如何使用它?

将数字转换为单词

即使这个问题已经发布并在之前得到解答。 我想要帮助我的代码。 任务是将数字转换为0到1000万的单词。 我试图用我的代码使用GUI来做到这一点,问题是它根本没有返回答案。 任何人都可以帮助我确定代码可能存在的问题。 代码如下: private void btnConvertToText_Click(object sender, EventArgs e) { string ConvertedNumber = ” “; int number = Convert.ToInt32(txtNumber.Text); int Count = 0; string [] ones = {” One “, ” Two “, ” Three “, ” Four “, ” Five “, ” Six “, ” Seven “, ” Eight “, ” […]

如何使用C#以数字方式对值进行排序?

我有一个字符串,其中包含以句点分隔的数字。 当我排序时它看起来像这样,因为它是一个字符串:(ascii char order) 3.9.5.2.1.1 3.9.5.2.1.10 3.9.5.2.1.11 3.9.5.2.1.12 3.9.5.2.1.2 3.9.5.2.1.3 3.9.5.2.1.4 等等 我希望它像这样排序:(按数字顺序) 3.9.5.2.1.1 3.9.5.2.1.2 3.9.5.2.1.3 … 3.9.5.2.1.9 3.9.5.2.1.10 3.9.5.2.1.11 3.9.5.2.1.12 我知道我可以: 使用“分割”function可获取各个数字 将值放入对象中 对对象排序 如果重复现有function,我宁愿避免所有这些工作。 .net框架中的方法是否已经执行此操作?

按键事件后十进制后的限制数字

我使用以下代码只从用户获取数字,只有一个小数点,这对我在KeyPress事件上工作正常: if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != ‘.’) { e.Handled = true; } if (e.KeyChar == ‘.’ && (sender as TextBox).Text.IndexOf(‘.’) > -1) { e.Handled = true; } 现在我想限制小数点后面的数字/数字,即35.25468,表示点/小数后只需要6个数字/位数。 告诉我 !

关于生成无法追踪的发票ID的想法

我想在我的应用中为客户打印发票。 每张发票都有一个发票ID 。 我希望ID为: 顺序(最近输入的ID迟到) 32位整数 不像1 2 3那样容易追踪,所以人们无法分辨出我们销售的商品数量。 我自己的想法:自特定日期和时间以来的秒数 (例如1/1/2010 00 AM)。 任何其他想法如何生成这些数字?

如何在RichTextBox C#中显示一行的编号

我正在制作一个带代码突出显示的简单文本和脚本编辑器。 为此,我使用RichTextBox。 但我不知道如何让它在左侧显示行数,就像在VS或Notepad ++中一样。 有什么解决方案吗?