在C#中写大数字面量的方法我有一个这样的方法:PrefixGetPrefix(decimalvalue){if(value>110000000000000000000)returnPrefix.CosmicBig;如果(值>1000000000000000)返回Prefix.ReallyBig;如果(值>3000000000000)返回Prefix.Big;如果(值>50000000)返回前缀。好的;如果(值>750000)返回Prefix.SoSo;如果(值>750)返回Prefix.Small;返回Prefix.MiserablySmall;}确切的值并不重要。重要的是它们有时会改变(前缀用于绘图,一些文本区域在开发中改变大小)。我正在寻找一种方式来编写此文本,以便人们无需计算所有零即可轻松更改它。一个分隔符就可以了。我想写11*1000*1000*1000*1000*1000*1000,但这更难管理。您可以使用Math.Pow()做得更好,但我使用Math.Pow()进行此类计算以定义常量。可以为int引入扩展方法:750.Thousand();500万();1000亿();这些方法的实现很简单:publicstaticintThousand(thisintvalue){returnvalue*1000;}publicstaticintMillion(thisintvalue){returnvalue.Thousand()*1000;}//等。确保为具有较大数字的方法返回适当的数据类型:publicstaticlongBillion(thisintvalue){returnvalue.Million()*1000;不幸的是,您必须为每个要支持的整数或浮点类型编写这些方法。拥有一整套这样的扩展方法可以让你以相对自然的方式表达你的大数,即使它最终不只是全零:100.Billion()+30.Thousand()+300//==100,000,030,300如果你喜欢的话,你甚至可以考虑嵌套它们:100.Billion(30.Thousand(300))但我认为这会失去一些表现力,因为人们会想知道参数的含义。不过,实现看起来像这样:publicstaticlongBillion(thisintvalue,longadd){returnvalue.Million()*1000+add;使用这些扩展方法有一个小缺点:您的数字不再是编译时数量。它们是在运行时计算的。在绝大多数情况下,这应该不是问题。您可以使用11e18而不是110000000000000000000。使用m表示它是小数,所以11e18m。以上就是C#学习教程的全部内容:一种用C#编写大量文本的方法。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
