web-dev-qa-db-fra.com

Doctrine 2 - 2 décimales sur un flotteur?

Annotation:

/**
 * @ORM\Column(type="float", scale="2")
 */
protected $curr_price;

Je l'utilise avec Symfony 2.

Et ce champ devient un double dans la base de données MySQL au lieu de flotter avec une précision de 2 points.

Qu'est-ce que je fais mal? J'ai essayé de supprimer la base de données, de réinsérer etc ...

25
Tool

Les propriétés precision et scale fonctionnent uniquement avec le type de mappage decimal ( link ). Je vous suggère d'utiliser le type decimal.

Quant à savoir pourquoi il crée un double champ au lieu de flottant, je ne suis pas entièrement sûr. Cela a probablement à voir avec la compatibilité avec toutes les bases de données prises en charge. Je ne vois aucune mention du type de mappage double donc je suppose qu'ils utilisent le même type pour les deux.

34
gilden

dans le * .yml

curr_price:
    type: decimal
    precision: 10
    scale: 2
10
juan
/**
 * @ORM\Column(type="float", scale=2)
 */
protected $curr_price;

l'échelle doit être un entier et vous utilisez une chaîne

8
Serhii Polishchuk