I have a list of numbers from a database and in the data base the first number has 2 places past the number
Example {2.00, 1.9}.
When I grab this number it looks like this {2.0, 1.9}.....I need 2 places past the number.
I tried to format to a string then change back to a number but no luck.
Intent >format("%3.2f",2.0 )
--> "2.00"
Intent >makeNumber("2.00")
--> 2.0
John
If you need to show your number on the drawing, use Styles. You need create new Dimension style with checked Trailing Zeros in Unit Tab - Display. Select precision as 2.12. In Intent code when you will create Dimension Child use dimStyle parameter as "here name your Dim Style". Should work.
Numbers have the same precision internally all the time. What you see as the representation is a function of what is doing the output. If you have a real number in a database, it is 2, 2.0, 2.00000000 all at the same time. Intent's various UIs have different standards. There are also functions which can format numbers to a string. But there isn't any loss of precision.
You say, "When I grab this number".. What does that mean? Then you say you need 2 places past the number, but you seem to indicate that you don't want a string. So where do you want 2 places that isn't a string?
--Jack Gregory
As it turns out I was able to use a string as my final output so I used the format() function.
Here is an example:
original list:
Intent >data.set
--> {{1.38, 12.0}, {1.38, 9.0}, {1.68, 9.0}, {1.68, 9.0}, {2.0, 7.5}, {2.0, 6.0}, {2.0, 6.0}, {2.0, 9.0}, {2.0, 9.0}, {2.0, 7.5}, {2.2, 4.5}, {2.2, 6.0}, {2.2, 6.0}, {2.2, 7.5}, {2.2, 9.0}, {2.2, 9.0}, {2.2, 7.5}, {2.2, 4.5}, {2.4, 6.0}, {2.4, 7.5}, {2.4, 6.0}, {2.4, 4.5}, {2.4, 7.5}, {2.4, 4.5}}
Rule Run As Any = sort(RemoveDuplicates(data.set), :Ascending, key := {:first, :Second})
Rule Run1 As List
Run1 = {}
Dim x As Any
Dim dataList As Any = Run
For Each x In (dataList)
Run1 = Run1 +{{format("%3.2f",nth(1,x)), format("%3.1f",nth(2,x))}}
Next x
End Rule
Rule Run2 As List
Run2 = {}
Dim x As Any
Dim dataList As Any = Run1
For Each x In (dataList)
Run2 = Run2 +{nth(1,x) + (If MakeNumber(nth(2,x))>=10 Then "__" Else "___") + nth(2,x)}
Next x
End Rule
Intent >run2
--> {"1.38___9.0", "1.38__12.0", "1.68___9.0", "2.00___6.0", "2.00___7.5", "2.00___9.0", "2.20___4.5", "2.20___6.0", "2.20___7.5", "2.20___9.0", "2.40___4.5", "2.40___6.0", "2.40___7.5"}