没有合适的资源?快使用搜索试试~ 我知道了~
delphi 小数转分数(不是仅限整除的)
4星 · 超过85%的资源 需积分: 10 26 下载量 61 浏览量
2008-12-10
15:54:01
上传
评论
收藏 2KB TXT 举报
温馨提示
试读
2页
delphi 小数转分数(不是仅限整除的)
资源推荐
资源详情
资源评论
function Fraction(decimal: double): string;
var
intNumerator, intDenominator, intNegative: integer; // 声明整数变量为长整数
dblFraction, dblDecimal, dblAccuracy, dblinteger: Double; // 声明浮点数为双精度
begin
dblDecimal := decimal; //取得目标小数
if trunc(decimal) = decimal then // 如果是整数,则直转
result := floattostr(decimal)
else
begin
if abs(decimal) > 1 then //如果小数大于1 如 10.24 ,进行拆解
begin
dblinteger := trunc(decimal); //取出整数部分
dblDecimal := abs(frac(decimal)); //取出小数部分
end
else dblDecimal := decimal;
dblAccuracy := 0.01; //设置精度
intNumerator := 0; //初始分子为0
intDenominator := 1; //初始分母为1
intNegative := 1; //符号标记为正
if dblDecimal < 0 then intNegative := -1; //如果目标为负,设置负标志位
dblFraction := 0; //设置分数值为 0/1
while Abs(dblFraction - dblDecimal) > dblAccuracy do //如果当前没有达到精度要求就继续循环
begin
if Abs(dblFraction) > Abs(dblDecimal) then //如果我们的分数大于目标
intDenominator := intDenominator + 1 //增加分母
else //否则
intNumerator := intNumerator + intNegative; //增加分子
dblFraction := intNumerator / intDenominator; //计算新的分数
var
intNumerator, intDenominator, intNegative: integer; // 声明整数变量为长整数
dblFraction, dblDecimal, dblAccuracy, dblinteger: Double; // 声明浮点数为双精度
begin
dblDecimal := decimal; //取得目标小数
if trunc(decimal) = decimal then // 如果是整数,则直转
result := floattostr(decimal)
else
begin
if abs(decimal) > 1 then //如果小数大于1 如 10.24 ,进行拆解
begin
dblinteger := trunc(decimal); //取出整数部分
dblDecimal := abs(frac(decimal)); //取出小数部分
end
else dblDecimal := decimal;
dblAccuracy := 0.01; //设置精度
intNumerator := 0; //初始分子为0
intDenominator := 1; //初始分母为1
intNegative := 1; //符号标记为正
if dblDecimal < 0 then intNegative := -1; //如果目标为负,设置负标志位
dblFraction := 0; //设置分数值为 0/1
while Abs(dblFraction - dblDecimal) > dblAccuracy do //如果当前没有达到精度要求就继续循环
begin
if Abs(dblFraction) > Abs(dblDecimal) then //如果我们的分数大于目标
intDenominator := intDenominator + 1 //增加分母
else //否则
intNumerator := intNumerator + intNegative; //增加分子
dblFraction := intNumerator / intDenominator; //计算新的分数
资源评论
- tsunekou2012-08-16比较简单的
tjchywxc
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功