我有两个号码:
1234567890< --- Long
和
0.123456< --- Float
有没有办法将这些组合起来以下列格式制作浮动(或双重):
(123)4567890.123456
我不介意括号中的数字是否必须删除。
答案 0 :(得分:3)
鉴于long
l
和float
f
,您可以使用:
double result = l % 10000000 + (double) f;
这通常会在小数部分失去一些准确性。
更新:从评论中,我们了解到这些值是一个时间,表示为秒数和几分之一秒,并且需要计算间隔。如果我们想要找到两次之间的差异,那么我们就可以通过这种方式从准确性和精确度来减少问题,从而计算差异:
double SubtractTimes(long l0, float f0, long l1, float f1)
{
long ld = l1 - l0;
double fd = (double) f1 - f0;
return ld + fd;
}
注意:如果担心时间可能已经包含了一些上限,那么代码应该对此进行测试并进行调整。
答案 1 :(得分:0)
我一定错过了什么。这不容易吗?
long l = 1234567890;
float f = 0.123456;
float result = l + f;
答案 2 :(得分:0)
使用此:
double result = l + f;
printf("%.6f",result);