using System;
public class Program
{
public static void Main()
{
double roundUp = 55.329;
double roundDown = 55.324;
double awayFromZero = 55.325;
Console.WriteLine("round up:" + roundUp.ToString("N"));
Console.WriteLine("round down:" + roundDown.ToString("N"));
Console.WriteLine("round away from zero:" + awayFromZero.ToString("N"));
}
}
结果
上限:55.33
向下舍入:55.32
圆零:55.33
从dotnetfiddle.net(https://dotnetfiddle.net/TnOaXF)剪切并粘贴。
我的问题是我在msdn中查看double.ToString()并且无法找出“规则”在哪里确定舍入。 double.toString如何确定使用舍入零而不是舍入到零?任何指向msdn或其他权威网站的链接都将非常感激。非常感谢你。
答案 0 :(得分:1)
从Standard Numeric Format strings文档中,它总是远离零:
要执行舍入操作,请使用Math.Ceiling,Math.Floor或Math.Round方法。
当精度说明符控制结果字符串中的小数位数时,结果字符串会反映从零开始舍入的数字(即使用MidpointRounding.AwayFromZero)。
从该页面和Custom Numeric Format Strings page看起来似乎没有办法覆盖它:如果你想要别的东西,你必须在格式化之前手动舍入数字。