- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
<分区>
我正在尝试计算任何 ISBN-13 号的校验位,我不太担心 ISBN 号是有效还是无效,但我一直在努力让代码正常工作。我对算法的解释显然存在缺陷,欢迎提出如何修复它的建议,但主要问题是接收到的用户输入对于整数变量来说太大了,但我也想避免 double 值的小数点。
我已经尝试使用 BigDecimal
和 BigNumber
但我没有足够的经验来完全理解它们。这是找到 d13(校验位)的算法:10-(d1 +3d2 +d3 +3d4 +d5 +3d6 +d7 +3d8 +d9 +3d10 +d11 +3d12)%10。
我知道代码很乱。我用过 this website作为我想做的事情的引用,我一直在使用这个 ISBN 号作为我的实践:9780132130806
。
同样,我的问题是如何打印不带小数的最终 ISBN 编号以及如何修正我的算法? (我也非常感谢网站上任何有助于教授 JOption 的提示,因为这是我使用的首选方法,因为它看起来比使用扫描仪更干净)
import javax.swing.JOptionPane;
import java.math.BigInteger;
public class ISBN
{
//George Sayegh Calculate check Digit ISBN
public static void main(String[] args)
{
//Define Variables
double ISBN12, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12 = 0, D13;
double A = 100000000000L;
double B = 10000000000L;
double C = 1000000000;
double D = 100000000;
double E = 10000000;
double F = 1000000;
double G = 100000;
double H = 10000;
double I = 1000;
double J = 100;
double K = 10;
double L = 1;
//Get ISBN #
String ISBN12text = JOptionPane.showInputDialog("Please enter the first 12 digits of your ISBN number");
ISBN12 = Double.parseDouble(ISBN12text);
//Calculate D1
D1 = ((ISBN12 - (ISBN12 % A)) / A);
//Calculate D2
D2 = ((ISBN12 - (ISBN12 % B)) / B);
//Calculate D3
D3 = ((ISBN12 - (ISBN12 % C)) / C);
//Calculate D4
D4 = ((ISBN12 - (ISBN12 % D)) / D);
//Calculate D5
D5 = ((ISBN12 - (ISBN12 % E)) / E);
//Calculate D6
D6 = ((ISBN12 - (ISBN12 % F)) / F);
//Calculate D7
D7 = ((ISBN12 - (ISBN12 % G)) / G);
//Calculate D8
D8 = ((ISBN12 - (ISBN12 % H)) / H);
//Calculate D9
D9 = ((ISBN12 - (ISBN12 % I)) / J);
//Calculate D10
D10 = ((ISBN12 - (ISBN12 % K)) / K);
//Calculate D11
D11 = ((ISBN12 - (ISBN12 % L)) / L);
//Get D13
D13 = 10 - (D1 + (3 * D2) + D3 + 3 * D4 + D5 + 3 * D6 + D7 + 3 * D8 + D9 + 3 * 10 + D11 + 3 * D12) % 10;
JOptionPane.showMessageDialog(null, D1 +""+ D2 +""+ D3 +""+ D4 +""+ D5 +""+ D6 +""+ D7 +""+ D8 +""+ D9 +""+ D10 +""+ D11 +""+ D12 +""+ 13);
}
}
我正在编写一个函数来根据给定的字符串构建校验和。 校验和定义为: 校验和之前一行所有字符(包括STX和CR)的二进制和的低7位的2的补码。 到目前为止我想出了: CheckDigit = getche
CUSIP 是一个 9 位字母数字代码,用于唯一标识金融证券。 https://en.wikipedia.org/wiki/CUSIP 它们发明于1964年,考虑到60年代数据传输的可靠性,第9位实际
是否可以使用 regex 语句创建 mod 11 校验位例程? 号码是 10 位数字, 第 1 步:A = (2号*2)+(3号*4)+(4号*8)+(5号*5)+(6号*10)+(7号*9)+(8号
我已经使用下面链接中的代码尝试验证信用卡,但是当我在该字段中提交错误数据时,我没有收到警报。 Strip spaces before performing Luhn check 我的表格如下: Se
如何计算GS1 check digit用于 SQL Server 中的 GTIN 和 SSCC 代码。 最佳答案 此用户定义函数将为 GS1 网站上提到的所有 GTIN 和 SSCC 格式计算校验位。
我是一名优秀的程序员,十分优秀!