Procházet zdrojové kódy

Add test for keeping float precision (#2442)

Add test for keeping float precision
Emir Beganović před 5 roky
rodič
revize
11caf9f072
1 změnil soubory, kde provedl 18 přidání a 0 odebrání
  1. 18 0
      main_test.go

+ 18 - 0
main_test.go

@@ -1164,6 +1164,24 @@ func TestCountWithQueryOption(t *testing.T) {
 	}
 }
 
+func TestFloatColumnPrecision(t *testing.T) {
+	if dialect := os.Getenv("GORM_DIALECT"); dialect != "mysql" && dialect != "sqlite" {
+		t.Skip()
+	}
+
+	type FloatTest struct {
+		ID         string  `gorm:"primary_key"`
+		FloatValue float64 `gorm:"column:float_value" sql:"type:float(255,5);"`
+	}
+	DB.DropTable(&FloatTest{})
+	DB.AutoMigrate(&FloatTest{})
+
+	data := FloatTest{ID: "uuid", FloatValue: 112.57315}
+	if err := DB.Save(&data).Error; err != nil || data.ID != "uuid" || data.FloatValue != 112.57315 {
+		t.Errorf("Float value should not lose precision")
+	}
+}
+
 func BenchmarkGorm(b *testing.B) {
 	b.N = 2000
 	for x := 0; x < b.N; x++ {