Skip to content

Commit 63c5685

Browse files
committed
fix: keep last zero when parseFloat in all db
1 parent aebc915 commit 63c5685

17 files changed

Lines changed: 36 additions & 26 deletions

pegjs/athena.pegjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2425,7 +2425,7 @@ number
24252425
type: 'bigint',
24262426
value: numStr
24272427
}
2428-
return parseFloat(numStr);
2428+
return parseFloat(numStr).toFixed(frac.length - 1);
24292429
}
24302430
/ int_:int exp:exp {
24312431
const numStr = int_ + exp
@@ -2446,7 +2446,7 @@ int
24462446
= digits
24472447
/ digit:digit
24482448
/ op:("-" / "+" ) digits:digits { return op + digits; }
2449-
/ op:("-" / "+" ) digit:digit { return op + digit; }
2449+
/ op:("-" / "+" ) digit:digit { return op + digit; }
24502450

24512451
frac
24522452
= "." digits:digits { return "." + digits; }

pegjs/bigquery.pegjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2932,7 +2932,7 @@ number
29322932
type: 'bigint',
29332933
value: numStr
29342934
}
2935-
return parseFloat(numStr);
2935+
return parseFloat(numStr).toFixed(frac.length - 1);
29362936
}
29372937
/ int_:int exp:exp {
29382938
const numStr = int_ + exp
@@ -2953,7 +2953,7 @@ int
29532953
= digits
29542954
/ digit:digit
29552955
/ op:("-" / "+" ) digits:digits { return op + digits; }
2956-
/ op:("-" / "+" ) digit:digit { return op + digit; }
2956+
/ op:("-" / "+" ) digit:digit { return op + digit; }
29572957

29582958
frac
29592959
= "." digits:digits { return "." + digits; }

pegjs/db2.pegjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2247,7 +2247,7 @@ number
22472247
type: 'bigint',
22482248
value: numStr
22492249
}
2250-
return parseFloat(numStr);
2250+
return parseFloat(numStr).toFixed(frac.length - 1);
22512251
}
22522252
/ int_:int exp:exp {
22532253
const numStr = int_ + exp
@@ -2268,7 +2268,7 @@ int
22682268
= digits
22692269
/ digit:digit
22702270
/ op:("-" / "+" ) digits:digits { return op + digits; }
2271-
/ op:("-" / "+" ) digit:digit { return op + digit; }
2271+
/ op:("-" / "+" ) digit:digit { return op + digit; }
22722272

22732273
frac
22742274
= "." digits:digits { return "." + digits; }

pegjs/flinksql.pegjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3327,7 +3327,7 @@ number
33273327
type: 'bigint',
33283328
value: numStr
33293329
}
3330-
return parseFloat(numStr);
3330+
return parseFloat(numStr).toFixed(frac.length - 1);
33313331
}
33323332
/ int_:int exp:exp {
33333333
// => IGNORE
@@ -3350,7 +3350,7 @@ int
33503350
= digits
33513351
/ digit:digit
33523352
/ op:("-" / "+" ) digits:digits { return op + digits; }
3353-
/ op:("-" / "+" ) digit:digit { return op + digit; }
3353+
/ op:("-" / "+" ) digit:digit { return op + digit; }
33543354

33553355
frac
33563356
= "." digits:digits { return "." + digits; }

pegjs/hive.pegjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2222,7 +2222,7 @@ number
22222222
type: 'bigint',
22232223
value: numStr
22242224
}
2225-
return parseFloat(numStr);
2225+
return parseFloat(numStr).toFixed(frac.length - 1);
22262226
}
22272227
/ int_:int exp:exp {
22282228
const numStr = int_ + exp
@@ -2243,7 +2243,7 @@ int
22432243
= digits
22442244
/ digit:digit
22452245
/ op:("-" / "+" ) digits:digits { return op + digits; }
2246-
/ op:("-" / "+" ) digit:digit { return op + digit; }
2246+
/ op:("-" / "+" ) digit:digit { return op + digit; }
22472247

22482248
frac
22492249
= "." digits:digits { return "." + digits; }

pegjs/mariadb.pegjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3675,7 +3675,8 @@ number
36753675
type: 'bigint',
36763676
value: numStr
36773677
}
3678-
return parseFloat(numStr);
3678+
const fixed = frac.length >= 1 ? frac.length - 1 : 0
3679+
return parseFloat(numStr).toFixed(fixed);
36793680
}
36803681
/ int_:int exp:exp {
36813682
const numStr = int_ + exp

pegjs/mysql.pegjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3959,7 +3959,8 @@ number
39593959
type: 'bigint',
39603960
value: numStr
39613961
}
3962-
return parseFloat(numStr);
3962+
const fixed = frac.length >= 1 ? frac.length - 1 : 0
3963+
return parseFloat(numStr).toFixed(fixed);
39633964
}
39643965
/ int_:int exp:exp {
39653966
const numStr = int_ + exp

pegjs/noql.pegjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4690,7 +4690,7 @@ number
46904690
type: 'bigint',
46914691
value: numStr
46924692
}
4693-
return parseFloat(numStr);
4693+
return parseFloat(numStr).toFixed(frac.length - 1);
46944694
}
46954695
/ int_:int exp:exp {
46964696
// => IGNORE
@@ -4713,7 +4713,7 @@ int
47134713
= digits
47144714
/ digit:digit
47154715
/ op:("-" / "+" ) digits:digits { return op + digits; }
4716-
/ op:("-" / "+" ) digit:digit { return op + digit; }
4716+
/ op:("-" / "+" ) digit:digit { return op + digit; }
47174717

47184718
frac
47194719
= "." digits:digits { return "." + digits; }

pegjs/postgresql.pegjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5566,7 +5566,7 @@ double_float
55665566
type: 'bigint',
55675567
value: numStr
55685568
}
5569-
return parseFloat(numStr);
5569+
return parseFloat(numStr).toFixed(frac.length - 1);
55705570
}
55715571
number
55725572
= double_float / integer

pegjs/redshift.pegjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4778,7 +4778,7 @@ number
47784778
type: 'bigint',
47794779
value: numStr
47804780
}
4781-
return parseFloat(numStr);
4781+
return parseFloat(numStr).toFixed(frac.length - 1);
47824782
}
47834783
/ int_:int exp:exp {
47844784
// => IGNORE
@@ -4801,7 +4801,7 @@ int
48014801
= digits
48024802
/ digit:digit
48034803
/ op:("-" / "+" ) digits:digits { return op + digits; }
4804-
/ op:("-" / "+" ) digit:digit { return op + digit; }
4804+
/ op:("-" / "+" ) digit:digit { return op + digit; }
48054805

48064806
frac
48074807
= "." digits:digits { return "." + digits; }

0 commit comments

Comments
 (0)