NumericUpDown为百分比,然后为十六进制

时间:2014-01-02 11:20:02

标签: c# .net-4.0 hex percentage numericupdown

我的表单上有一个numericupdown控件。值为17,我需要将该数字存储到变量中,然后将其转换为0-255的百分比,然后将其转换为十六进制。

我拥有的:17 我需要得到的地方:((17/100)* 256) - 1 = 42.52,四舍五入到43 然后我需要将其转换为十六进制:43 = 2B

我不知道/理解。

当我接收该值时,我将它存储在什么类型的变量中?串?诠释?双倍?

请有人提供一个例子。

谢谢你, 詹姆斯

1 个答案:

答案 0 :(得分:1)

我会这样:

decimal value = 17m; // or YourNumericUpDownControl.Value
int percent = (int)Math.Round(((value / 100) * 256) - 1, MidpointRounding.ToEven);
string hex = percent.ToString("X");

NumericUpDown.Value属于decimal类型(请参阅MSDN),因此您应该从decimal开始。我在这里直接输入了17,就像你在你的例子中所做的那样。