小编Ash*_*lax的帖子

C如何计算没有浮点精度的百分比(千)

您如何计算从2个int值到一个表示一个百分比的int值的百分比(千位,以获得更高的准确性)?

背景/用途:使用没有FPU的处理器,浮点计算的时间要长100倍。

int x = 25;
int y = 75;
int resultPercentage; // desire is 250 which would mean 25.0 percent

resultPercentage = (x/(x+y))*1000; // used 1000 instead of 100 for accuracy
printf("Result= ");
printf(resultPercentage);
Run Code Online (Sandbox Code Playgroud)

输出:

结果= 0

当我真正需要的是250时,并且不能使用任何浮点计算。

正常的fpu计算示例:

int x = 25;
int y = 75;
int resultPercentage; // desire is 250 which would mean 25.0 percent

resultPercentage = (int)( ( ((double)x)/(double(x+y)) ) *1000); //Uses FPU slow

printf("Result= ");
printf(resultPercentage);
Run Code Online (Sandbox Code Playgroud)

输出:

结果= 250

但是输出是以使用浮点计算为代价的。

c embedded floating-point int percentage

5
推荐指数
1
解决办法
7891
查看次数

如何检查uint8_t是否作为类型而不是unsigned char存在?

我有两个编译器,一个识别uint8_t(GCC ARM-EABI),另一个不识别(瑞萨M16标准工具链).

瑞萨工具链不符合ANSI C标准,因此您可以抛弃.因此uint8_t,uint16_t,...未定义为现有类型.

为了保持可移植性,我希望有相同的类型(最好是uint8_t,因为int的含糊不清).

我的平台也是不同大小的处理器(ARM是32位,瑞萨是16位).导致int成为不同的值.

有没有办法检查uint8_t是否作为一种类型存在?

如果没有,请将它(以及其他uint16_t,uint32_t,...)声明为一种类型?

c c++ embedded

3
推荐指数
3
解决办法
4314
查看次数

C#Zedgraph更改行短划线长度

我正在尝试在Zed Graph线上更改Dashes的长度.我希望实线之间有更大的间隙.

我的代码示例

LineItem LineCurve = null
LineCurve = ZedGraphControl.GraphPane.AddCurve("line1",PairPointListData, Color, Symbol);
//now I want to change the dash settings
LineCurve.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
LineCurve.Line.StepType = StepType.ForwardStep;
LineCurve.Line.DashOn = 1.0f;//Not sure what this floating point does
LineCurve.Line.DashOff = 1.0f;//Also not sure
Run Code Online (Sandbox Code Playgroud)

我已经改变了Dash On和Off的值,但我看不到任何明显的值.提前感谢任何建议/想法

c# zedgraph line hyphen

2
推荐指数
1
解决办法
5832
查看次数

标签 统计

c ×2

embedded ×2

c# ×1

c++ ×1

floating-point ×1

hyphen ×1

int ×1

line ×1

percentage ×1

zedgraph ×1