UVM prints not printing time value after decimal point

In reply to stanley_sam:

The issue is not with the format for printing, but rather the time precision in the scope where the delay appears. The actual delay is being rounded to the time precision, and the uvm_info is printing the value returned by $realtime formatted by %t.

module top;
  timeunit 1ns;
  timeprecision 1ps;
  import uvm_pkg::*;
  `include "uvm_macros.svh"
  
  initial begin
    $timeformat(-9, 3, " ns", 10);
    #25687.156 `uvm_info("SOME PRINT","Print example 1", UVM_LOW)
  end
endmodule

This displays

# UVM_INFO testbench.sv(11) @ 25687.156 ns: reporter [SOME PRINT] Print example 1

but if I change the time precision to 1ns ( or by using `timescale), it displays

# UVM_INFO testbench.sv(11) @ 25687.000 ns: reporter [SOME PRINT] Print example 1

The value returned by $realtime has been rounded before $display even begins to format it.