You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中不使用内置方法截断小数后多余位数?

手动截断C#数值到两位小数(无内置方法)

实现思路

要截断小数点后多余位数到两位,无需调用任何内置方法,可通过基础数学运算实现:将目标数值乘以100,通过强制类型转换截断小数部分,再除以100还原小数点位置。

修改后的完整代码

static void Main(string[] args)
{
    int[] array = { 6, 2, 3, 2, 12, 1 };
    double arithmethicAverage = ArithmethicAverage(array);
    
    // 手动执行截断操作
    double truncatedAvg = (int)(arithmethicAverage * 100) / 100.0;
    Console.WriteLine($"Arithmetic average of array is: {truncatedAvg} "); // 输出结果为 4,33
}

public static double ArithmethicAverage(int[] array)
{
    double result = 0;
    for (int i = 0; i < array.Length; i++)
    {
        result += array[i];
    }
    result /= array.Length;
    return result;
}

步骤解析

  1. 移位放大:arithmethicAverage * 100 将原数值的小数点向右移动两位,例如 4.3333333333 变为 433.333333333
  2. 截断小数:(int)(...) 强制将放大后的数值转换为整数,自动丢弃小数部分,得到 433
  3. 还原移位:/ 100.0 将数值的小数点向左移回两位,最终得到 4.33

通用场景补充

如果需要处理负数数值,上述代码同样适用——C#中double转int是向零方向截断,例如 -4.339 经过运算后会得到 -4.33,符合截断需求。

内容的提问来源于stack exchange,提问作者Giorgi Tamazashvili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:25:21