[edited 2017-07-13 - I've got a better solution further down in the thread]
In other tools rather than doing string manipulation*** I use a formula like INT(FLOAT([raw string])*100)/100. From the inside out this converts the string to a floating point number, multiplies that by 100 (i.e. turning the two decimal places into an integer value), uses INT() to truncate the number, and then divides by 100 to convert back to two decimal places.
*** the reason I avoid string manipulation is partially performance, partially for easily handling non-US data sets where commas are used for marking the decimal place. I'm all in favor of making the OS and the underlying app do all the work that it can rather than me having to customize my code.
Since Alteryx doesn't have an equivalent to an INT() function (that I've ever found) I used a combination of the following:
1. Created a "Converted Number" with the formula ToNumber([raw string])/100
2. Created an "Output Number" with the formula IF [Converted Number] >= 0 THEN FLOOR([Converted Number]) ELSE CEIL([Converted Number]) ENDIF/100. This uses the FLOOR() and CEILING() functions to mimic the results of an INT().
The workflow is attached.
I'm not sure about your last question about someone changing the format...I'd say it depends on what they want to do with the values, for example if they are going to be adding up values then sticking with numbers is easier, same if they are non-US where they'd naturally want a different number format, if they are using raw values in tools like Excel and Tableau then numbers are naturally formatted in those tools to be right-aligned which is easier to read, if they are text then the default is left aligned which would need to be manually corrected, etc.