当前位置: 首页 > news >正文

c# 常见的几种取整场景

软件取整,通常指的是在计算机软件中对数值进行取整操作,即将一个浮点数或小数转换为整数,同时确定如何处理小数部分。取整操作在编程和数学计算中非常常见,不同的取整方法适用于不同的场景。

常见的取整方法

  1. 向零取整(截断取整)

    • 这种方法简单地去掉小数部分,保留整数部分。
    • 例如,对于正数,向零取整相当于地板除;对于负数,相当于天花板除。
    • 例如:Math.Truncate(3.7) 结果是 3Math.Truncate(-3.7) 结果是 -3
    double number = 3.7;
    int truncatedNumber = (int)number; // 结果是 3
    
  2. 向下取整(地板除)

    • 这种方法总是将数值向下舍入到最接近的整数。
    • 例如,Math.Floor(3.2) 结果是 3Math.Floor(-3.2) 结果是 -4
    double number = 3.2;
    int floorNumber = (int)Math.Floor(number); // 结果是 3
    
  3. 向上取整(天花板除)

    • 这种方法总是将数值向上舍入到最接近的整数。
    • 例如,Math.Ceiling(3.2) 结果是 4Math.Ceiling(-3.2) 结果是 -3
    double number = 3.2;
    int ceilingNumber = (int)Math.Ceiling(number); // 结果是 4
    
  4. 四舍五入取整

    • 这种方法根据小数部分的值决定是向上还是向下舍入。
    • 例如,Math.Round(3.5) 结果是 4Math.Round(2.5) 结果是 2(取决于四舍五入的规则)。
    double number = 3.5;
    int roundedNumber = (int)Math.Round(number); // 结果是 4
    

使用场景

  • 向零取整:适用于需要简单截断小数部分的场景,不考虑数值的正负。
  • 向下取整:适用于需要将数值向下舍入到最近的整数,特别是在处理负数时。
  • 向上取整:适用于需要将数值向上舍入到最近的整数,特别是在处理负数时。
  • 四舍五入取整:适用于需要根据小数部分的值进行标准舍入的场景。

示例代码

using System;public class Program
{public static void Main(){double positiveNumber = 3.7;double negativeNumber = -3.7;// 向零取整int truncatedPositive = (int)positiveNumber; // 3int truncatedNegative = (int)negativeNumber; // -3// 向下取整int floorPositive = (int)Math.Floor(positiveNumber); // 3int floorNegative = (int)Math.Floor(negativeNumber); // -4// 向上取整int ceilingPositive = (int)Math.Ceiling(positiveNumber); // 4int ceilingNegative = (int)Math.Ceiling(negativeNumber); // -3// 四舍五入取整int roundPositive = (int)Math.Round(positiveNumber); // 4int roundNegative = (int)Math.Round(negativeNumber); // -4Console.WriteLine("向零取整 (正数): " + truncatedPositive);Console.WriteLine("向零取整 (负数): " + truncatedNegative);Console.WriteLine("向下取整 (正数): " + floorPositive);Console.WriteLine("向下取整 (负数): " + floorNegative);Console.WriteLine("向上取整 (正数): " + ceilingPositive);Console.WriteLine("向上取整 (负数): " + ceilingNegative);Console.WriteLine("四舍五入取整 (正数): " + roundPositive);Console.WriteLine("四舍五入取整 (负数): " + roundNegative);}
}
http://www.lryc.cn/news/518488.html

相关文章:

  • 数据库回滚:大祸临头时
  • 【GoLang】两个字符串如何比较大小?以及字典顺序的比较规则
  • 5G学习笔记之SNPN系列之UE入网和远程配置
  • C#版OpenCv常用函数大全
  • Spring Boot教程之五十二:CrudRepository 和 JpaRepository 之间的区别
  • 蓝桥杯备考:数据结构之栈 和 stack
  • solidity基础 -- 映射
  • Angular 11课程实践:构建高效单页应用的支持代码
  • 测试用例颗粒度说明
  • ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告
  • Windows安装ES单机版设置密码
  • Linux Docker
  • MSE学习
  • 0-基于蚁群优化和带注意力机制的循环神经网络的新型混合算法用于解决旅行商问题(HAL science)(完)
  • MIUI显示/隐藏5G开关的方法,信号弱时开启手机Wifi通话方法
  • 挑战20天刷完leecode100
  • Java列表示例
  • Objective-C语言的网络编程
  • 安卓OCR使用(Google ML Kit)
  • 《机器学习》——贝叶斯算法
  • 【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率
  • 网站自动签到
  • C 语言奇幻之旅 - 第16篇:C 语言项目实战
  • 项目实战——使用python脚本完成指定OTA或者其他功能的自动化断电上电测试
  • 04、Redis深入数据结构
  • 【MySQL学习笔记】MySQL的索引
  • 利用ArcGIS快速准确地统计出地块的现状容积率
  • C++类的引入
  • 【跨域问题】
  • “深入浅出”系列之FFmpeg:(1)音视频开发基础