任何人都可以帮助我理解为什么float的输出是十进制的四舍五入?
代码 -
static void Main(string[] args)
{
float f = (float)Math.Round(Convert.ToDouble("270825.27000000000000"), 2);
double d = Math.Round(Convert.ToDouble("270825.27000000000000"), 2);
Console.WriteLine("Float - " + f.ToString());
Console.WriteLine("Double - " + d.ToString());
Console.Read();
}
输出
先谢谢。
答案 0 :(得分:1)
你要投两倍浮动,所以基本上你有:
铸造
float f = (float)Math.Round(float.Parse("270825.27000000000000"), 2);
double d = Math.Round(Convert.ToDouble("270825.27000000000000"), 2);
Console.WriteLine("Float - " + f.ToString());
Console.WriteLine("Double - " + d.ToString());
结果是:
Float - 270825.3
Double - 270825.27
所以使用十进制
decimal f = (decimal)Math.Round(decimal.Parse("270825.27000000000000"), 2);
Console.WriteLine("Decimal - " + f.ToString());
270825.27