首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将变量舍入到小数点后两位C#

将变量舍入到小数点后两位C#
EN

Stack Overflow用户
提问于 2012-09-27 20:40:53
回答 8查看 150.7K关注 0票数 45

我感兴趣的是如何将变量四舍五入到小数点后两位。在下面的示例中,奖金通常是一个有四个小数位的数字。有没有办法确保pay变量总是四舍五入到小数点后两位?

代码语言:javascript
运行
复制
  pay = 200 + bonus;
  Console.WriteLine(pay);
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-09-27 20:41:59

使用Math.Round并指定小数位数。

代码语言:javascript
运行
复制
Math.Round(pay,2);

Math.Round Method (Double, Int32)

双精度浮点值舍入到指定的小数位数。

Math.Round Method (Decimal, Int32)

将十进制值四舍五入到指定的小数位数。

票数 93
EN

Stack Overflow用户

发布于 2012-09-27 20:46:51

您应该使用Math.Round的一种形式。请注意,除非您指定MidpointRounding值,否则Math.Round默认为银行家舍入(舍入到最接近的偶数)。如果你不想使用四舍五入,你应该使用Math.Round(decimal d, int decimals, MidpointRounding mode),如下所示:

代码语言:javascript
运行
复制
Math.Round(pay, 2, MidpointRounding.AwayFromZero); // .005 rounds up to 0.01
Math.Round(pay, 2, MidpointRounding.ToEven);       // .005 rounds to nearest even (0.00) 
Math.Round(pay, 2);    // Defaults to MidpointRounding.ToEven

(Why does .NET use banker's rounding?)

票数 28
EN

Stack Overflow用户

发布于 2012-09-27 20:43:02

代码语言:javascript
运行
复制
decimal pay  = 1.994444M;

Math.Round(pay , 2); 
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12621640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档