如何在c#中对十进制值进行四舍五入?
Am以十进制计算小数值,预期结果为345.00,但得到的结果为345.0000 我的代码是这如何在c#中对十进制值进行四舍五入?,c#,winforms,gridview,C#,Winforms,Gridview,Am以十进制计算小数值,预期结果为345.00,但得到的结果为345.0000 我的代码是这十进制温度=6900*(5/100) 温度=345.0000如何舍入?我想显示345.00?我犯了什么错? 我试过这个代码Math.Round(tempdiscountprice,2)也是,但它在这里不起作用。帮帮我我认为您向我们显示了错误的代码,因为这样做不会得到345.00或345.0000。它总是得到0 你的temp应该是0,因为自从你这样做以来,你的5/100总是0。这就是为什么你的temp将69
十进制温度=6900*(5/100)代码>
温度=345.0000如何舍入?我想显示345.00?我犯了什么错?
我试过这个代码Math.Round(tempdiscountprice,2)代码>也是,但它在这里不起作用。帮帮我我认为您向我们显示了错误的代码,因为这样做不会得到345.00
或345.0000
。它总是得到0
你的temp
应该是0
,因为自从你这样做以来,你的5/100
总是0
。这就是为什么你的temp
将6900*0
那么它将是0
如果您向我们显示正确的代码,您的问题看起来像是显示问题,而不是取整问题
如果您想将数字格式化为字符串,请查看
我认为您向我们展示了错误的代码,因为这不会得到345.00
或345.0000
。它总是得到0
你的temp
应该是0
,因为自从你这样做以来,你的5/100
总是0
。这就是为什么你的temp
将6900*0
那么它将是0
如果您向我们显示正确的代码,您的问题看起来像是显示问题,而不是取整问题
如果您想将数字格式化为字符串,请查看
我认为你没有展示你真正的代码。以下结果为0,因为(5/100)是使用整数算法计算的:
decimal temp = 6900 * (5 / 100);
Console.WriteLine(temp.ToString()); // result is 0
如果使用decimal,将得到以下结果:
decimal temp = 6900 * (5M / 100);
Console.WriteLine(temp.ToString()); // result is 345.00
但是,decimal类型不保留尾随零:
decimal temp = 6900 * (5.0000M / 100);
Console.WriteLine(temp.ToString()); // result is 345.0000
在.NET 1.1中引入了这样的保留尾随零的方法,以便更严格地符合ECMA CLI规范
但没有什么可以阻止您使用两位小数格式化输出,例如:
decimal temp = 6900 * (5.0000M / 100);
Console.WriteLine(temp.ToString("N2")); // result is 345.00
我认为你没有展示你真正的代码。以下结果为0,因为(5/100)是使用整数算法计算的:
decimal temp = 6900 * (5 / 100);
Console.WriteLine(temp.ToString()); // result is 0
如果使用decimal,将得到以下结果:
decimal temp = 6900 * (5M / 100);
Console.WriteLine(temp.ToString()); // result is 345.00
但是,decimal类型不保留尾随零:
decimal temp = 6900 * (5.0000M / 100);
Console.WriteLine(temp.ToString()); // result is 345.0000
在.NET 1.1中引入了这样的保留尾随零的方法,以便更严格地符合ECMA CLI规范
但没有什么可以阻止您使用两位小数格式化输出,例如:
decimal temp = 6900 * (5.0000M / 100);
Console.WriteLine(temp.ToString("N2")); // result is 345.00
正如user2864740
在上面指出的,问题不在于舍入,而在于将值显示为字符串。尝试:
decimal temp = 345.0000m;
String.Format("{0:0.00}", temp)
正如user2864740
在上面指出的,问题不在于舍入,而在于将值显示为字符串。尝试:
decimal temp = 345.0000m;
String.Format("{0:0.00}", temp)
看起来是显示/显示不舍入的问题。谢谢guyz,我现在用了这个代码temp.ToString(“N2”)
看起来是显示/显示不舍入的问题。谢谢guyz,我现在用了这个代码temp.ToString(“N2”)
嗨,乔,我试过temp.ToString(“N2”)
工作很好,谢谢。我的原始代码是price=6900.00&Tax=5.00。嗨,乔,我尝试了temp.ToString(“N2”)
工作正常,谢谢。我的原始代码是price=6900.00,Tax=5.00。