Excel中的文本函数

Excel中文本函数的一个function是将任何小于1的浮点值转换为HH:mm格式。 所以如果我做文本(0.756635,“HH:MM”),它会给我18:09。 我想知道这是如何工作的。 事情是,我正在改变我的代码到C,所以我需要在C中的类似的function,将浮动更改为该格式。 有没有可以帮助我的图书馆? 或者没有人知道如何在Excel中的文字function?

#include <stdio.h> #include <math.h> int main(void) { double x = 0.756635; double h, m; x = x * 24; m = modf(x, &h) * 60; printf("%02d:%02d\n", (int)h, (int)m); return 0; } 

输出:

 18:09 

如果你想避免math.h

 #include <stdio.h> int main(void) { double x = 0.756635; double h, m; x = x * 24; h = (int)x; m = (x - h) * 60; printf("%02d:%02d\n", (int)h, (int)m); return 0; } 

基本上全天(24小时)等于1。

每小时等于1/24 = 0.0416666667

每分钟等于1 /(24 * 60)= 0.0006944444

每秒等于1 /(24 * 60 * 60)= 0.0000115741

 For Eg 0.756635 HH: Integer Part of 0.756635*24=18 MM: Integer Part of MOD(0.756635*24,1)*60=09 

完整的公式:

 =CONCATENATE(A1*24-MOD(A1*24,1)&":"&MOD(A1*24,1)*60-MOD(MOD(A1*24,1)*60,1)&":"&ROUND(MOD(MOD(A1*24,1)*60,1)*60,0)) 

如果你想3:05:10你需要做3/24 + 5 /(24 * 60)+ 10 /(24 * 60 * 60),你会得到数字

如果你可以计算到秒,你可以使用这个公式(从时间到数字)

 =HOUR(H27)/24+MINUTE(H27)/(24*60)+SECOND(H27)/(24*60*60) 

我希望这有帮助,你可以调整公式来计算它支持模的任何代码

基本上是十进制格式的天。 所以如果假设你有0.25的价值,你乘以24获得小时。 如果小时数有小数点,乘以小数点右边60,得到分钟数。 如果在几分钟内有一个小数,把小数的右边乘以60得到秒。