Consider some calculation yielding Quantity[x,"B"]
as output ("B" interpreted as byte).
- Is there a way to automatically convert this to the unit "GB" or "MB" or "TB" etc as the case may be. i.e. instead of checking
y
inx<2^(10 y)
, is there some inbuilt way of doing this?
Consider now the quantity Quantity[x,"s"]
. ("s" interpreted as second).
Depending on x, the human readable unit may be micro seconds to days. This again has the same solution structure as the file-size case mentioned earlier. Only the base unit is different.
- Say one implements the explicit solution mentioned in 1. If one wants to modify the function to now accommodate time based
Quantity
s too, one needs to know whether the input arg is of "data" category or "time" category. Are there meta categories for units in Mathematica? e.g. "KB,MB,GB,TB"->data, "s,h,year,days"->"time"
I did try CommonUnits
, but it didn't work.
BytesToQuantity
,SecondsToQuantity
, andMetriNumberString
that might be relevant here. $\endgroup$UnitConvert
canonicalize units for you and work from there (see the docs) which gives you the "meta-category" $\endgroup$