2

对于以下查询:

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,但事实并非如此。

4

1 回答 1

2

记录在案的行为似乎暗示您的方法应该有效: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]
于 2010-02-24T16:38:46.457 回答