【发布时间】:2011-11-29 04:46:39
【问题描述】:
我正在制作一个信用卡验证器程序,我在其中要求一个字符串,该字符串将是一个 16 位数字(信用卡号),我想将其转换为一个 int 数组。我怎么做?然后我需要从第一个数字开始每隔一个数字乘以 2。
char[] creditNumbers = creditCardNumber.ToCharArray();
creditNumbers[0] = (char)((int)(creditNumbers[0] * 2));
creditNumbers[2] = (char)((int)(creditNumbers[2] * 2));
creditNumbers[4] = (char)((int)(creditNumbers[4] * 2));
creditNumbers[6] = (char)((int)(creditNumbers[6] * 2));
creditNumbers[8] = (char)((int)(creditNumbers[8] * 2));
这是我到目前为止所做的,但我的选角没有正确完成。我该如何解决这个问题?
【问题讨论】:
-
输入和期望输出的例子真的很有帮助......
-
首先,您应该使用循环,而不是一遍又一遍地复制和粘贴相同的内容。其次,在乘法之前尝试移动括号以强制转换为 int,如下所示:
(char)(((int)creditNumbers[0]) * 2) -
如果数字代表一个数值
>= 5会发生什么,因此将其数值加倍不会产生一位数?你到底对那些可怜的信用卡做了什么? -
@Jason 看起来他正在做校验和计算
标签: c# credit-card checksum