小编Six*_*s17的帖子

MySQL Errno 150

我正在创建一些简单的表,我无法通过这个外键错误,我不知道为什么.这是下面的脚本.

create TABLE Instructors (

ID varchar(10),
First_Name varchar(50) NOT NULL,
Last_Name varchar(50) NOT NULL,
PRIMARY KEY (ID)
);

create table Courses (

Course_Code varchar(10),
Title varchar(50) NOT NULL,
PRIMARY KEY (Course_Code)

);


create table Sections (
Index_No int,
Course_Code varchar(10),
Instructor_ID varchar(10),
PRIMARY KEY (Index_No),
FOREIGN KEY (Course_Code) REFERENCES Courses(Course_Code)
    ON DELETE cascade
    ON UPDATE cascade,
FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID)
    ON DELETE set default

);
Run Code Online (Sandbox Code Playgroud)

错误代码:1005.无法创建表'336_project.sections'(错误号:150)

我的数据类型看起来相同,语法似乎正确.任何人都可以指出我在这里没有看到的东西吗?

我正在使用MySQL Workbench 5.2

mysql foreign-keys mysql-workbench

21
推荐指数
3
解决办法
6万
查看次数

科学记数法转换 - 计划

我试图对两个非常大的数字进行简单的减法运算.

(- 1.8305286640724363e+023 (floor 1.8305286640724363e+023))
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到0.0的结果.我期待输出:

(- 1.8305286640724363e+023 (floor 1.8305286640724363e+023)) => .2439521
Run Code Online (Sandbox Code Playgroud)

扩展的科学记数法会给我答案.

183052866407243622723319.24395251 - 183052866407243622723319.00 = .2439521

我想用这些数字来表示这些数字,使用十进制数字,而不是科学记数法,所以我可以达到预期的结果.在Scheme中有没有办法做到这一点?任何帮助,指导或参考将不胜感激:)

我正在使用DrRacket for Windows 64bit和R5RS Language.

编辑

我想我会尽可能具体地说明我正在执行的算术的例子.

算术:

(* 271979577247970257395 0.6180339887) => 1.6809262297150285e+020
Run Code Online (Sandbox Code Playgroud)

当在计算器中进行相同的乘法时,结果yeilds => 168092622971502827156.7975214365

当试图使用精确或不精确时我得到这个:

(exact (* 271979577247970257395 0.6180339887)) => exact: undefined;
(inexact (* 271979577247970257395 0.6180339887)) => inexact: undefined;
Run Code Online (Sandbox Code Playgroud)

我想R5RS不支持精确/不精确?我查了一下,示例显示使用不精确 - >精确的程序所以我做了并得到了这个:

(inexact->exact (* 271979577247970257395 0.6180339887)) => 168092622971502854144
Run Code Online (Sandbox Code Playgroud)

仅仅为了特异性,我做了相反的事情:

(exact->inexact (* 271979577247970257395 0.6180339887)) => 1.6809262297150285e+020
Run Code Online (Sandbox Code Playgroud)

所以我尝试使用Big Float,就像有人提到的那样:

(bf-precision 128)
(bf (* 271979577247970257395 0.6180339887)) => (bf 168092622971502854144)
Run Code Online (Sandbox Code Playgroud)

给我完全相同的输出.我只想要保存得到我从计算器得到的数字,这似乎是一项非常艰巨的任务!对不起,我可能因为没有得到这个而听起来很愚蠢,请记住我在计划中是一个极端的业余爱好者.再次感谢你的帮助!:)

scheme scientific-notation arithmetic-expressions racket

5
推荐指数
1
解决办法
1344
查看次数