delphi保留2位小数?如何实现。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi保留2位小数?如何实现。相关的知识,希望对你有一定的参考价值。
var a:real; begin a:=1/9; showmessage(FloatToStr(a)); end; 得出来的结果是:0.1111111111。 如何保留2位小数:0.11。
在日常编程中,经常遇到需要设置保留小数点后几位小数的应用,比如,日常票据中大多数货币保留2位小数,即“元”为单位时,精确到“分”。
在 delphi 语言中,保留几位小数,可以使用以下功能函数,这些函数大多定义在 Math 单元文件中:
或者直接使用简化的版本:
如果不需要在保留 2 位小数过程中进行四舍五入,则直接截取即可。
以下是示例的代码:
var
a: real;
b1: Single; //浮点类型
b2,b3: Currency; //货币类型,精确到小数点后四位
begin
a := 1 / 9;
//直接将 RoundTo 的结果传入,
//如果再转存为其他浮点数,就会导致误差
ShowMessage(FloatToStr(RoundTo(a, -2)));
//保留2位小数,四舍五入
b1 := RoundTo(a, -2);
ShowMessage(FloatToStr(b1));
//保留2位小数,四舍五入
b2 := SimpleRoundTo(a);
ShowMessage(FloatToStr(b2));
//保留2位小数,不四舍五入
b3 := Trunc(a *100)/100;
ShowMessage(FloatToStr(b2));
end;
代码示例截图:
需要提示的是:
在计算机中语言中,浮点数是一种“不精确”的数据类型,是“近似值”,比如,1.145 可能在计算机中实际是 1.144999999999999999.....,例如,本例中 0.11 实际存储的是0.10999999....。
如果确实需要精确的小数点后数值,比如,钱币计算,可以考虑使用 delphi 中特定的数据类型 Currency,这种数据类型可以确保小数点后四位都是确定值(不是“浮动”的近似值)。
可以使用这样的办法:
x := Round(x * 100) / 100;
在USER部份加入MATH单元后可以使用
x:=RoundTo(y, 2)
或者用以下办法:
x=a/b;
x=strtofloat(formatfloat('0.00',x));
扩展资料
round函数的使用用法
根据Excel的帮助得知,round函数就是返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
round函数的语法是:ROUND(number,num_digits),即:Round(数值,保留的小数位数)
Number:需要进行四舍五入的数字。
Num_digits:指定的位数,按此位数进行四舍五入。
其中,如果 num_digits 大于 0,则四舍五入到指定的小数位。
如果 num_digits 等于 0,则四舍五入到最接近的整数。
如果 num_digits 小于 0,则在小数点左侧进行四舍五入。
=ROUND(3.19, 1) 将 3.19 四舍五入到一个小数位 (3.2)
=ROUND(2.649, 1) 将 2.649 四舍五入到一个小数位 (2.6)
=ROUND(-5.574, 2) 将 -5.574 四舍五入到两小数位 (-5.57)
=ROUND(18.8, -1) 将 18.8 四舍五入到小数点左侧一位 (20)。这个参数-1表示取整到十位数。
参考资料来源:百度百科-round函数
参考技术Bdelphi保留2位小数,实现的方法如下:
x := Round(x * 100) / 100;
在USER部分加入MATH单元后可以使用
x:=RoundTo(y, 2)
或者用以下办法:
x=a/b;
x=strtofloat(formatfloat('0.00',x));
扩展资料:
在日常编程中,经常遇到需要设置保留小数点后几位小数的应用,比如,日常票据中大多数货币保留2位小数,即“元”为单位时,精确到“分”。
在 delphi 语言中,保留几位小数,可以使用功能函数,示例的代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
a: real;
b1: Single; //浮点类型
b2,b3: Currency; //货币类型,精确到小数点后四位
begin
a := 1 / 9;
//直接将 RoundTo 的结果传入,//如果再转存为其他浮点数,就会导致误差
ShowMessage(FloatToStr(RoundTo(a, -2)));
//保留2位小数,四舍五入b1 := RoundTo(a, -2);
ShowMessage(FloatToStr(b1));
//保留2位小数,四舍五入b2 := SimpleRoundTo(a);
ShowMessage(FloatToStr(b2));
//保留2位小数,不四舍五入b3 := Trunc(a *100)/100;
ShowMessage(FloatToStr(b2));
end;
参考技术C a:=strtofloat(formatfloat('0.00',a)); showmessage(FloatToStr(a));本回答被提问者采纳 参考技术D showmessage(FormatFloat('0.00',a));如何在Python中保留小数?
如何在Python中把小数保留到2位?
f = lambda x, n: round(x, n - len(str(int(x))));
定义了一个方法f,用来实现你所说的功能。
输入:
f(123.456789, 8)
输出:
123.45678
输入:
f(1.23456789, 8)
输出:
1.2345679000000001
f接收2个参数,第一个参数是要求有效位数的数字,第二个参数是设置有效位数。第二次输出中的数字不够准确,这跟python处理小数的方式有关,如果想要准确的数字可以使用python decimal类。或者用python3k
扩展资料
#include <stdio.h>
#define C "C Programming"int main(void)
int a=12345;float b=5.12345678;
char e,d,f;
scanf("%c %c %c",&e,&d,&f);
printf("int is:%d\\n",a);
printf("float is:%f\\n",b);
printf("char is:%s\\n",C);return 0;
1,对于浮点数
a=1.36852
a=round(a,2)
print a
#结果1.36
2,对于整数
from decimal import Decimal
a=1
a=Decimal(a).quantize(Decimal('0.00'))
print a
#结果1.00
3,通用方法
a=1
a=("%.2f" % a)
print a
#结果1.00
参考资料:百度百科 Python
百度百科 printf
如
a=3.251551
round(a,2)可以把a保留二位小数本回答被提问者采纳 参考技术B %0.2f
以上是关于delphi保留2位小数?如何实现。的主要内容,如果未能解决你的问题,请参考以下文章