Fibonacci’s sexagesimals
C – 584 bytes
Non-competing (obviously), but to serve as inspiration:
#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;math.h&gt;
char*f(int z){static char r[8];char*l[]={&quot;&quot;,&quot;I&quot;,&quot;II&quot;,&quot;III&quot;,&quot;IV&quot;,&quot;V&quot;,&quot;VI&quot;,&quot;VII&quot;,&quot;VIII&quot;,&quot;IX&quot;},*h[]={&quot;&quot;,&quot;X&quot;,&quot;XX&quot;,&quot;XXX&quot;,&quot;XL&quot;,&quot;L&quot;};if(!z)return&quot;N&quot;;sprintf(r,&quot;%s%s&quot;,h[z/10],l[z%10]);return r;}int main(int c,char**v){char*s=&quot;&quot;;int i,j,z[10],k=60;long x;double d,y;y=modf(atof(v[1]),&amp;d);x=d;for(i=4;i&gt;=0;i--){z[i]=x%k;x/=k;}for(i=5;i&lt;=9;i++){z[i]=(y*=k);y-=z[i];}for(i=0;!z[i]&amp;&amp;i&lt;4;i++);for(;i&lt;5;i++){printf(&quot;%s%s&quot;,s,f(z[i]));s=&quot;*&quot;;}for(j=9;!z[j]&amp;&amp;j&gt;=i;j--);if(i&lt;=j)printf(&quot;*E&quot;);for(;i&lt;=j;i++)printf(&quot;*%s&quot;,f(z[i]));printf(&quot;\n&quot;);return 0;}

Save as fs.c, build with gcc -o fs fs.c -lm, and run as ./fs &lt;arg&gt;.
Test cases:
$ ./fs 0
N
$ ./fs 1
I
$ ./fs 60
I*N
$ ./fs 0.1
N*E*VI
$ ./fs 3600
I*N*N
$ ./fs 10.5
X*E*XXX
$ ./fs 16777215
I*XVII*XL*XX*XV
$ ./fs 3.1415926536
III*E*VIII*XXIX*XLIV*N*XLVII

Largest mantissa and fraction:
$ ./fs 777599999
LIX*LIX*LIX*LIX*LIX
$ ./fs 0.999999998713992
N*E*LIX*LIX*LIX*LIX*LIX

I'm using double as the working type, so the largest mantissa and fraction combined exceeds the native accuracy of that type. If I used long double instead it could handle it.