返回列表 发帖

C语言如何处理单位转化问题

C语言中的数值只能表示一个值,而不能单位。例如,1可以表示1分,也可以表示1角,也可以表示一元。而生活中,所有的东西都有单位。那在程序中,如何表示呢?解决方法如下:

在C语言中,需要使用两个变量来表示一个带单位的数量。例如,1023KB表示为
float a=1023;
int b=1;
其中,a用来表示数值,b用来表示单位。其中,0表示B;1表示KB;2表示MB;3表示GB;4表示TB。
在转化的时候,首先需要将单位都转化为最小单位值B
float c;
c=a*pow(1024,b);
进行各种运算后,再转化为对应的单位制
while(c/1024>=1024)
{
a=c/1024;
b=b+1;
}
以上是一个基本思路。在实际中,还需要考虑很多问题,如精度问题、数据类型范围、单位换算比例问题。
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

这是一个伪命题。
你说的不是单位,而是数量级。在应用中,我们通常更具精度的需要,约定一个数量级。

如果是C语言编程,我们就用宏来读取不同的数量级,如KG(),T()。

而真正的单位转换,是两种不同的单位体系转换,比如千克/盎司。

TOP

返回列表