c# - 有没有办法对 BigInteger 进行舍入或取整?

标签 c#

我有一个 BigIntiger,比如 1234567890,我正在寻找最快的方法将它变成如下之一:

  • 2000000000
  • 1300000000
  • 1234567900

最佳答案

我不认为有这样做的内置方式。

获得“无余数”的最简单方法是将值减去余数:

“四舍五入”不给 13 的余数:

  var x = new BigInteger(123456);
  var roundedTo13 = x - (x % 13);

或者到 100:

  var roundedTo100 = x - (x % 100);
  Console.WriteLine(roundedTo100);

如果您需要更传统意义上的舍入 - 检查余数是否大于您要舍入的值以及您要舍​​入的数字的符号。如果余数 (x % 100) 的值大于一半,则需要加/减 100。

关于c# - 有没有办法对 BigInteger 进行舍入或取整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34169368/

相关文章:

c# - 无法将基类(数据协定)转换为派生类

c# - 如何在控件实例化后立即发送自定义事件消息?

c# - 谁最后决定什么是通用类型?

c# - 使用 Json.NET 反序列化多个 json 字符串的最快方法

c# - 将 Excel 范围添加到列表而不循环

c# - 格式化 anchor 的字符串,必须调用 javascript 函数 onclick(mvc)

c# - 使用 Entity Framework 保存具有外键约束的数据

c# - 为什么我的 Azure 网站不再可见?

c# - 从 Azure Keyvault c# 获取带私钥的 X509 证书

c# - 查询Json如何获取must数组内的元素