I have a problem, I have a parameter defined as a string and that should appear as, in this specific model, "4,0", but which indeed appears as "4," --> without the zero.
(It cuts-off the last figure).
The strange thing is that if I add a test parameter defined in the same way (in the same) it comes out correctly as "4,0". I post below a screen recording of what I mean:
(hoping that is clear).
Anyone knows what is it due to and how to fix it?
I haven't seen this problem before, but I would suggest using the "=?" toolbutton in the Relations window to investigate.
This pops up a small dialogue box which allows you to evaluate any formula, and immediately see the answer - so for example, you can check the value of pro_mp_mass and also the result of pro_mp_mass - floor(pro_mp_mass), just by copying and pasting from the Relations editor.
Try evaluating small parts of your relations in this way, and make sure that each small part gives the answer you were expecting.
yes, it definitely was a mistake in the logic that, with this particular number, gave back an error in a string line.
Indeed massa_disegno appears "correctly" as "4,".
Are you positive this is a string-valued parameter? Removing trailing zeroes (generally via detail setup options lead_trail_zeroes and lead_trail_zeroes_scope, generally driven by your standards) would make considerably more sense if it were a real number -valued parameter.
yes I had to make it a string parameter just for reasons linked to the approximations and, above all, to the fact that that parameter massa_disegno is a value I had built to "please" the eye in the drawing tables, that is an indication of mass rounded accordingly to the value of the mass, e.g. 5,2 kg, 204 kg, 768 g...depends on the order of size of the mass).
Check your If/Else logic, I think the mp_pro_mass is falling through and using the default statement at the end, rather than the one you are using for the test.
Like Jonathan said, use the relation tools '=?' to evaluate the relations and see where they go.
I suggest you to change the structure of IF commands in relations to the following one.
if pro_mp_mass < 0.0005
/* mass < 0.0005
/* mass >= 0.0005
if pro_mp_mass < 0.05
/* mass >= 0.0005 AND mass < 0.05
/* mass >= 0.05
if pro_mp_mass < 0.95
/* mass >= 0.05 AND mass < 0.95
/* mass >= 0.95
if pro_mp_mass < 1
/* mass >= 0.95 AND mass < 1
/* mass >= 1
yes, it was missing the interval " 0,95 > >=0,05 " (which I wrongly thought came in the "else" case) and I modified it by adding an if with it:
if pro_mp_mass<1 & pro_mp_mass >= 0.0005
massa_disegno=itos(1000*pro_mp_mass) + " g"
if pro_mp_mass-floor(pro_mp_mass) < 0.05
massa_disegno=itos(floor(pro_mp_mass)) + ",0" + " kg"
if pro_mp_mass-floor(pro_mp_mass) >= 0.95
massa_disegno=itos(ceil(pro_mp_mass)) + ",0" + " kg"
if pro_mp_mass-floor(pro_mp_mass) < 0.95 & pro_mp_mass-floor(pro_mp_mass) >= 0.05
massa_disegno=itos(floor(pro_mp_mass)) + ","+ itos(10*(pro_mp_mass-floor(pro_mp_mass))) + " kg"
if pro_mp_mass < 0.0005
massa_disegno="< 1 g"
and now comes out correctly...(didn't realize it conviced that was ok...better later than ever ).