a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C# double和decimal數據類型以截斷的方式保留指定的小數位數

2020-01-24 03:41:52
字體:
來源:轉載
供稿:網友
項目中要用到以截斷的方式取小數點后兩位,故寫了以下方法:
復制代碼 代碼如下:

/// <summary>
/// 將小數值按指定的小數位數截斷
/// </summary>
/// <param name="d">要截斷的小數</param>
/// <param name="s">小數位數,s大于等于0,小于等于28</param>
/// <returns></returns>
public static decimal ToFixed(decimal d, int s)
{
decimal sp = Convert.ToDecimal(Math.Pow(10, s));

if (d < 0)
return Math.Truncate(d) + Math.Ceiling((d - Math.Truncate(d)) * sp) / sp;
else
return Math.Truncate(d) + Math.Floor((d - Math.Truncate(d)) * sp) / sp;
}

/// <summary>
/// 將雙精度浮點值按指定的小數位數截斷
/// </summary>
/// <param name="d">要截斷的雙精度浮點數</param>
/// <param name="s">小數位數,s大于等于0,小于等于15</param>
/// <returns></returns>
public static double ToFixed(double d, int s)
{
double sp = Math.Pow(10, s);

if (d < 0)
return Math.Truncate(d) + Math.Ceiling((d - Math.Truncate(d)) * sp) / sp;
else
return Math.Truncate(d) + Math.Floor((d - Math.Truncate(d)) * sp) / sp;
}

順帶提一下:
double和decimal的ToString("#.##")方法使用的是四舍五入;
靜態類System.Math下的Round(decimal d, int decimals)方法,舍入的方式使用的是“四舍六入五成雙”;
靜態類System.Math下的Round(decimal d, int decimals, MidpointRounding mode)的第三個參數是枚舉參數,指示如何處理中間值(5);
靜態類System.Math的方法:http://msdn.microsoft.com/zh-cn/library/system.math_methods(v=vs.80)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲国产精品麻豆 | 成人国产精品入麻豆 | 日韩欧美国产一区二区三区 | 欧美成人在线免费 | 日韩视频一区二区三区在线观看 | 91国内视频在线观看 | 美女国产网站 | 一区二区三区欧美在线 | 国产精品一区二区三区在线免费观看 | 在线看片网站 | 国产精品久久久久久久免费大片 | 亚洲欧美一区二区三区国产精品 | 国产精品1区2区 | 销魂美女一区二区三区视频在线 | 欧美一区二区久久久 | 亚洲午夜视频在线观看 | 亚洲黄页 | www.av7788.com| 特级丰满少妇一级aaaa爱毛片 | 国产精品九九九 | 亚洲成人1区 | 草久在线视频 | 亚洲精品99 | 亚洲精选一区二区 | 毛片网| 91丨九色丨国产 | 欧美成人一级视频 | 香蕉视频91 | 精品国产一区二区三区日日嗨 | jizz在亚洲| 国产又色又爽又黄 | 综合色婷婷一区二区亚洲欧美国产 | 日本黄色精品 | 欧美a∨一区二区三区久久黄 | 日本不卡在线视频 | 亚洲欧美一区二区三区国产精品 | 国产欧美精品一区二区三区四区 | 中文字幕第一页在线视频 | 欧美综合激情 | 成人免费看黄 | 精品国产一区二区三区电影小说 |