@@ -60,10 +60,10 @@ func Convert[NumOut Number, NumIn Number](orig NumIn) (NumOut, error) {
6060 if isFloat64 [NumIn ]() {
6161 floatOrig := float64 (orig )
6262 if math .IsInf (floatOrig , 1 ) || math .IsInf (floatOrig , - 1 ) {
63- return 0 , getRangeError [NumOut ](orig )
63+ return converted , getRangeError [NumOut ](orig )
6464 }
6565 if math .IsNaN (floatOrig ) {
66- return 0 , errorHelper [NumOut ]{
66+ return converted , errorHelper [NumOut ]{
6767 value : orig ,
6868 err : ErrUnsupportedConversion ,
6969 }
@@ -84,11 +84,11 @@ func Convert[NumOut Number, NumIn Number](orig NumIn) (NumOut, error) {
8484
8585 // TODO: check for numbers close to math.MaxFloat32
8686
87- return 0 , getRangeError [NumOut ](orig )
87+ return converted , getRangeError [NumOut ](orig )
8888 }
8989
9090 if ! sameSign (orig , converted ) {
91- return 0 , getRangeError [NumOut ](orig )
91+ return converted , getRangeError [NumOut ](orig )
9292 }
9393
9494 // and compare
@@ -100,7 +100,7 @@ func Convert[NumOut Number, NumIn Number](orig NumIn) (NumOut, error) {
100100 // convert back to the original type
101101 cast := NumIn (converted )
102102 if cast != base {
103- return 0 , getRangeError [NumOut ](orig )
103+ return converted , getRangeError [NumOut ](orig )
104104 }
105105
106106 return converted , nil
0 commit comments