I believe you're having this error because the year_exp field is DECIMAL(2,2), and you want DECIMAL(4,2). DECIMAL(2,2) means a number of precision 2, with up to 2 decimal places. But this number has 4 digits of precision.
This link to MSDN talks about the decimal precision.
http://msdn.microsoft.com/en-US/library/ms187746(v=SQL.90).aspx
Here's a quick test with similar results (done in SQL Server 2008, but I think you're on MySQL...)
1) Created a table with a test column:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Ran insert statement... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... and received this error ...
Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting numeric to data type numeric.
(COMMENT: one of my fave errors ... "cannot convert number to number ..." ha ha)
3) Altered column to proper specifications
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Re-ran same insert statement. It works.
Please let me know if this helps.
decimal(4,2)to fix your error and read up how to specify correct values for that datatype at MySQL docs.