我想用数学来做。圆的函数
当前回答
你可能需要检查的一件事是数学的舍入机制。轮:
http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx
除此之外,我推荐数学。Round(inputnumber, numberOfPlaces)接近*100/100,因为它更干净。
其他回答
你可能需要检查的一件事是数学的舍入机制。轮:
http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx
除此之外,我推荐数学。Round(inputnumber, numberOfPlaces)接近*100/100,因为它更干净。
//转换到小数点后两位
String.Format("{0:0.00}", 140.6767554); // "140.67"
String.Format("{0:0.00}", 140.1); // "140.10"
String.Format("{0:0.00}", 140); // "140.00"
Double d = 140.6767554;
Double dc = Math.Round((Double)d, 2); // 140.67
decimal d = 140.6767554M;
decimal dc = Math.Round(d, 2); // 140.67
= = = = = = = = =
// just two decimal places
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
也可以将“0”和“#”组合。
String.Format("{0:0.0#}", 123.4567) // "123.46"
String.Format("{0:0.0#}", 123.4) // "123.4"
String.Format("{0:0.0#}", 123.0) // "123.0"
下面是一些例子:
decimal a = 1.994444M;
Math.Round(a, 2); //returns 1.99
decimal b = 1.995555M;
Math.Round(b, 2); //returns 2.00
你可能还想看看银行家的四舍五入/四舍五入到偶数与以下过载:
Math.Round(a, 2, MidpointRounding.ToEven);
这里有更多的信息。
有一个奇怪的情况,我有一个十进制变量,当序列化55.50时,它总是设置数学默认值为55.5。但是,由于某些原因,我们的客户端系统期望的是55.50,他们肯定期望的是十进制。这就是当我写下面的帮助,它总是转换任何十进制值填充到2位零,而不是发送一个字符串。
public static class DecimalExtensions
{
public static decimal WithTwoDecimalPoints(this decimal val)
{
return decimal.Parse(val.ToString("0.00"));
}
}
用法应该是
var sampleDecimalValueV1 = 2.5m;
Console.WriteLine(sampleDecimalValueV1.WithTwoDecimalPoints());
decimal sampleDecimalValueV1 = 2;
Console.WriteLine(sampleDecimalValueV1.WithTwoDecimalPoints());
输出:
2.50
2.00
维基百科上有一个很好的四舍五入页面。
所有。net(托管)语言都可以使用任何公共语言运行时(CLR)舍入机制。例如,Math.Round()(如上所述)方法允许开发人员指定舍入的类型(舍入到偶数或远离零)。Convert.ToInt32()方法及其变体使用舍入到偶数。Ceiling()和Floor()方法是相关的。
您也可以使用自定义数字格式舍入。
注意Decimal.Round()使用了与Math.Round()不同的方法;
这是一篇关于银行家舍入算法的有用文章。 请看Raymond关于舍入的幽默帖子…
推荐文章
- Linq-to-Entities Join vs GroupJoin
- 为什么字符串类型的默认值是null而不是空字符串?
- 在list中获取不同值的列表
- 组合框:向项目添加文本和值(无绑定源)
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- 从System.Drawing.Bitmap中加载WPF BitmapImage
- 如何找出一个文件存在于c# / .NET?
- 为什么更快地检查字典是否包含键,而不是捕捉异常,以防它不?
- [DataContract]的命名空间
- string. isnullorempty (string) vs. string. isnullowhitespace (string)
- 完全外部连接
- 在foreach循环中编辑字典值
- 如何在xml文档中引用泛型类和方法
- 使用System.IO.Compression在内存中创建ZIP存档
- 从HttpResponseMessage获取内容/消息