Unfortunately that is the case. Options would be:
1) query it back as char, and convert back for further use, eg
SQL> create table t ( t1 interval day to second);
Table created.
SQL> insert into t values ( systimestamp - cast(systimestamp-2.34 as timestamp) );
1 row created.
SQL>
SQL> select t1 from t;
T1
---------------------------------------------------------------------------
+02 08:09:36.575000
SQL> select to_char(t1) from t;
TO_CHAR(T1)
--------------------
+02 08:09:36.575000
SQL> insert into t values ( to_dsinterval('+02 08:09:36.374000'));
1 row created.
2) Use the components of the interval individually, eg
SQL> select
2 extract(day from t1) d,
3 extract(hour from t1) h,
4 extract(minute from t1) m,
5 extract(second from t1) s
6 from t;
D H M S
---------- ---------- ---------- ----------
2 8 9 36.575
2 8 9 36.374