我正在尝试将erlang时间格式元组{megasec,sec,microsec}
转换为浮点数并再返回。
我可以这样做,例如:
{Megasec,Sec,Usec} = erlang:now().
Total = Megasec*1000000+Sec+Usec/1000000.
1352802601.427
但我正在努力将这个数字转换回时间格式。我总的想法除以1000000和圆,但我得到四舍五入的错误。 e.g。
Mega = erlang:round(Total/1000000).
1353
如果我能准确地做到这一点,我可以采用类似的步骤来获得Seconds
和Microseconds
。
有什么想法吗?
答案 0 :(得分:3)
您可以使用erlang:trunc
代替erlang:round
。
答案 1 :(得分:0)
关注@Falco Hirschenberger的建议,我是如何做到的:
Mega = erlang:trunc(Total/1000000).
1352
Sec = erlang:trunc(Total - Mega*1000000).
802601
Usec = erlang:round((Total - Mega*1000000 - Sec)*1000000).
427000
请注意。我必须使用erlang:round
来获取Usec
(否则答案应该是427000.0457763672
- 我认为这是由于当我除以1000000时引入的舍入误差)