对于以下查询:

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]

返回以下内容:

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

这引起了问题,因为我们在.NET中使用相同的格式字符串作为后处理操作(某些控件需要我们执行此操作),并且它的行为是按预期的(由于%符号而乘以100)。

这是有记录的行为吗?还是一些晦涩难懂的错误?还是我做错了什么/怪异?我感到 testPrepend 成员也应乘以100,但事实并非如此。

有帮助吗?

解决方案

有记录的行为似乎意味着您的方法应该起作用: http://msdn.microsoft.com/en-us/library/ms146084.aspx

代表一个百分比的占位符。该表达式乘以100。百分比(%)插入在格式字符串中的百分比出现的位置。

我已经尝试了更大的数字,以确保掩模填充,如果它是第一个字符,它似乎忽略了百分比符号?也许使用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]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top