var output = Convert.ToDecimal(amount / 4);
labelOutput.Text = "You need: " + System.Math.Round(output,0);
此代码是游戏计算器的一部分
“金额”是指用户想要制作多少,制作单品,需要4件(/ 4)
例如:
多少钱?:20
20/4 = 5
“你需要5件
但是当我输入21时,仍然说5件但用户需要6件才能制作21件(每件4件)
当输入为21时,如何将输出四舍五入使其为6而不是5?
(对不起,如果我没有解释得足够好)
答案 0 :(得分:10)
使用Math.Ceiling
答案 1 :(得分:3)
给出一个完整的答案(结合上述内容):
Ceiling
代替Round
假设amount
是一个整数,您需要让除法运算中的一个值为非整数(float
/ double
或decimal
,我在我的示例中使用decimal
后缀选择了m
。如果除法运算的两个部分都是整数类型,你将得到一个完整的答案(删除余数)。
然后调用Ceiling
以获得等于或大于output
的最小整数值(而不是Round
,它将最接近的整数值提供给output
)。
var output = amount / 4m;
labelOutput.Text = "You need: " + System.Math.Ceiling(output);
答案 2 :(得分:2)
圆函数将数字四舍五入到最接近的数字。
要进行汇总,您必须使用Math.Ceiling() 如果您需要向下舍入,则必须使用Math.Floor()
答案 3 :(得分:1)
var output = Math.Ceiling(amount / 4);
答案 4 :(得分:1)
假设'amount'是整数类型,那么问题在于你是在第一行中执行整数(整数)除法。
尝试将第一行更改为:var output = Convert.ToDecimal(amount) / 4.0;
答案 5 :(得分:0)
Round
将关闭数字 - 你想要的是总是向上舍入,你可以使用Ceiling
函数获得
答案 6 :(得分:0)
改为使用Math.Ceiling(amount / 4)
。
答案 7 :(得分:0)
有点丑陋,或许:var output = Convert.ToDecimal((amount+3) / 4);
如果你的金额恰好在MaxValue旁边,这个代码可能会破坏,这取决于你的分母,这是一个优势。