【发布时间】:2016-01-29 09:34:16
【问题描述】:
我在 ascii 中有一个浮点数,表示电压,例如。 5.625V,我需要去掉小数点。我不想截断数字或松散的精度,我只需要不带小数点的数字。
生成的数字将插入到 ascii 协议中,字段宽度为 5 位长度,表示电压,单位为 mV(毫伏)vs V(伏),如上例所示。数字需要显示为 5 位 ascii 数字,没有十进制。
例如。 ascii中的5.625V浮点数到ascii中的5625 mV十进制数..
看起来很简单......但无法找到一种优雅的方式来做到这一点。
【问题讨论】:
-
将结果乘以 10000 并以整数形式发送将解决我认为的问题
-
printf("%f V is %5d mV", voltage, voltage*1000); -
'我在 ascii 中有一个浮点数,表示电压,例如。 5.625V' - 这是否意味着带有空终止符的 C 样式字符串,即。 “5.625V”?您的问题似乎暗示了这一点,但一些 cmets/answers 表明它是某种格式的“真实 FP 值,例如。单人或双人。是哪个?
-
@shark.....第二个参数没有显示值,输出显示..“3.968346 V is 0 mV”
-
@Shark,如果
voltage是浮点数,那么voltage*1000也是浮点数。
标签: c floating-point printf string-formatting decimal-point