Question

Pour la requête suivante:

with 
member testVal as 0.1234
member testNormal as testVal
member testPrepend as testVal, format_string="%##.00"
member testMidpend as testVal, format_string="##%.00"
member testAppend as testVal, format_string="##.00%"
select { testNormal, testPrepend, testMidpend, testAppend} on axis (0)
from [SomeRandomPlace]

Le suivant est renvoyé:

testNormal  testPrepend     testMidpend     testAppend
0.1234      %.12            12%.34          12.34%

est à l'origine des problèmes, nous utilisons la même chaîne de format dans .NET comme une opération post-traitement (un certain contrôle nous oblige à le faire), et il se comporte comme prévu (multipliant par 100 en raison du signe%) .

Est-ce comportement documenté? Ou un bug obscur? Ou suis-je en train de faire quelque chose de mal / bizarre? Je sens le membre de testPrepend devrait aussi être multiplié par 100, mais ce n'est pas.

Était-ce utile?

La solution

Documenté le comportement semble impliquer votre méthode devrait fonctionner: http: // msdn .microsoft.com / fr-fr / bibliothèque / ms146084.aspx

  

Représente un espace réservé en pourcentage.   L'expression est multipliée par 100.   Le caractère pour cent (%) est inséré   dans la position où le pourcentage   apparaît dans la chaîne de format.

Je l'ai essayé avec un plus grand nombre, afin d'assurer le masque est rempli, il semble juste d'ignorer le symbole de pourcentage si elle est le premier caractère? Peut-être augmenter avec MS Connect?

with 
member testVal as 13.1234
member testNormal as testVal
member testFront as testVal, format_string = "%##.00"
member testFrontBack as testVal, format_string = "%##.00%"
member testString as testVal, format_string="Percent"
member testSymbol as testVal, format_string="%"
member testStringSymbol as testVal, format_string="%Percent" //Lol
select { testNormal, testFront, testFrontBack, testString, testSymbol, testStringSymbol} on axis (0)
from [Cube]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top